通用的編碼自動增加 ( 积分: 50 )

  • 主题发起人 主题发起人 ks_reny
  • 开始时间 开始时间
K

ks_reny

Unregistered / Unconfirmed
GUEST, unregistred user!
我想實現這樣功能的存儲過程:&nbsp;通用的編碼自動增加<br>該存儲過程可以對多個表適用.&nbsp;參數有三個,代碼,字段,表名<br>比如&nbsp;表A&nbsp;的字段&nbsp;NO,它的格式是&nbsp;AM07120023&nbsp;&nbsp;其中&nbsp;AM&nbsp;為&nbsp;代碼&nbsp;&nbsp;0712代表&nbsp;07年12月&nbsp;0023代表流水號<br>如果當前是07年12月&nbsp;&nbsp;表A中最大的NO是&nbsp;AM07120023&nbsp;&nbsp;那嚜我執行存儲過程後能返回AM07120024&nbsp;<br>&nbsp;&nbsp;&nbsp;其中&nbsp;該存儲過程的參數分別為&nbsp;AM,字段NO,表A<br>該存儲過程可以對其它表適用,&nbsp;&nbsp;參數如果為&nbsp;PD&nbsp;,字段NUM,表B&nbsp;&nbsp;執行後就能返回PD071200XX<br><br>我的意思大家應該明白了吧<br>我寫了一個存儲過程&nbsp;可是在最後報錯<br>alter&nbsp;Procedure&nbsp;Add_number<br>@Str&nbsp;&nbsp;&nbsp;varchar(4),<br>@Tablename&nbsp;varchar(20),<br>@Coloumname&nbsp;varchar(20)<br>AS<br>Declare&nbsp;@SQL&nbsp;nvarchar(1000)<br>Declare&nbsp;@maxmonth&nbsp;&nbsp;char(4)&nbsp;------数据中最大的月份<br>declare&nbsp;@month&nbsp;&nbsp;&nbsp;char(4)&nbsp;&nbsp;------寄存数据中最大的月份<br>declare&nbsp;@maxnum&nbsp;&nbsp;&nbsp;&nbsp;char(4)&nbsp;&nbsp;-------数据中最大月份中的最大流水号<br>Declare&nbsp;@num&nbsp;&nbsp;char(4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--------寄存数据中最大月份中的最大流水号<br>declare&nbsp;@currentmonth&nbsp;&nbsp;char(4)&nbsp;-----系统当前月份<br>declare&nbsp;@current&nbsp;&nbsp;char(4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-------积存系统当前月份<br>Declare&nbsp;@N&nbsp;&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-------&nbsp;@Tablename的记录数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>Declare&nbsp;@NO&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;------寄存@Tablename的记录数&nbsp;<br>declare&nbsp;@returnnum&nbsp;&nbsp;char(10)&nbsp;&nbsp;-------返回值--当前对应的编号<br>declare&nbsp;@return&nbsp;&nbsp;char(10)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;------寄存返回值--当前对应的编号&nbsp;&nbsp;<br>Declare&nbsp;@number&nbsp;&nbsp;char(4)<br>Declare&nbsp;@numbers&nbsp;&nbsp;char(4)<br>Declare&nbsp;@numbers1&nbsp;&nbsp;char(4)<br>Declare&nbsp;@numbers2&nbsp;&nbsp;char(4)<br>Declare&nbsp;@numbers3&nbsp;&nbsp;char(4)<br>Declare&nbsp;@numbers4&nbsp;char(4)<br>Declare&nbsp;@char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;varchar(4)<br>Declare&nbsp;@charnum&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;varchar(4)<br>Select&nbsp;&nbsp;@SQL='select&nbsp;@maxmonth&nbsp;=&nbsp;&nbsp;substring(max('+@Coloumname+'),3,4)&nbsp;From&nbsp;'+@Tablename<br>exec&nbsp;sp_executesql&nbsp;@SQL,N'@maxmonth&nbsp;varchar(4)&nbsp;output',@month&nbsp;output&nbsp;<br><br>Select&nbsp;&nbsp;@SQL='select&nbsp;@Maxnum&nbsp;=&nbsp;&nbsp;substring(max('+@Coloumname+'),7,4)&nbsp;From&nbsp;'+@Tablename<br>exec&nbsp;sp_executesql&nbsp;@SQL,N'@Maxnum&nbsp;varchar(4)&nbsp;output',@num&nbsp;output<br><br>Select&nbsp;&nbsp;@SQL='Select&nbsp;@currentmonth=substring(convert(char(16),getdate(),112),3,4)'<br>exec&nbsp;sp_executesql&nbsp;@SQL,N'@currentmonth&nbsp;varchar(4)&nbsp;output',@current&nbsp;output<br><br>Select&nbsp;&nbsp;@SQL='Select&nbsp;@N=count(*)&nbsp;From&nbsp;'+@Tablename<br>exec&nbsp;sp_executesql&nbsp;@SQL,N'@N&nbsp;varchar(4)&nbsp;output',@NO&nbsp;output<br>&nbsp;if&nbsp;@NO=0&nbsp;<br>&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;Select&nbsp;&nbsp;@SQL='Select&nbsp;@returnnum='+@Str+@current+'0001'<br>&nbsp;&nbsp;&nbsp;exec&nbsp;sp_executesql&nbsp;@SQL,N'@returnnum&nbsp;varchar(4)&nbsp;output',@return&nbsp;output&nbsp;<br>&nbsp;&nbsp;&nbsp;end&nbsp;<br>&nbsp;&nbsp;if&nbsp;@month=@current&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Begin&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select&nbsp;@SQL='Select&nbsp;@number=Cast((Cast('+@num&nbsp;+'as&nbsp;int)+1)&nbsp;as&nbsp;char(4))&nbsp;'&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exec&nbsp;sp_executesql&nbsp;@SQL,N'@number&nbsp;varchar(4)&nbsp;output',@numbers&nbsp;output&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;len(@numbers)=1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select&nbsp;@SQL='Select&nbsp;@number1='+'''000'''+@numbers<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exec&nbsp;sp_executesql&nbsp;@SQL,N'@number1&nbsp;varchar(4)&nbsp;output',@numbers&nbsp;output&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;len(@numbers)=2<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select&nbsp;@SQL='Select&nbsp;@number2='+'''00'''+@numbers&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exec&nbsp;sp_executesql&nbsp;@SQL,N'@number2&nbsp;varchar(4)&nbsp;output',@numbers&nbsp;output&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;len(@numbers)=3<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select&nbsp;@SQL='Select&nbsp;@number3='+'''0'''+@numbers&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exec&nbsp;sp_executesql&nbsp;@SQL,N'@number3&nbsp;varchar(4)&nbsp;output',@numbers&nbsp;output&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;len(@numbers)=4<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select&nbsp;@SQL='Select&nbsp;@number4='+@numbers&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exec&nbsp;sp_executesql&nbsp;@SQL,N'@number4&nbsp;varchar(4)&nbsp;output',@numbers&nbsp;output&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select&nbsp;@SQL='Select&nbsp;@returnnum='+@Str+@current+@numbers<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exec&nbsp;sp_executesql&nbsp;@SQL,N'@returnnum&nbsp;varchar(4)&nbsp;output',@return&nbsp;output&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;end<br>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;@month&lt;@current&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Begin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select&nbsp;@SQL='Select&nbsp;@returnnum='+@Str+@current+'0001'<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exec&nbsp;sp_executesql&nbsp;@SQL,N'@returnnum&nbsp;varchar(4)&nbsp;output',@return&nbsp;output&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;&nbsp;&nbsp;<br><br>select&nbsp;@month,@current,@num,len(@numbers),@charnum,@numbers,@return<br><br>服务器:&nbsp;消息&nbsp;207,级别&nbsp;16,状态&nbsp;3,行&nbsp;1<br>列名&nbsp;'AM07120001'&nbsp;无效。<br><br>(所影响的行数为&nbsp;1&nbsp;行)<br>結果是出來了,但就是報錯.不知哪位高手給看以下.
 
你原先的有很多错误,&nbsp;我干脆给你重写了一个:<br>ALTER&nbsp;PROCEDURE&nbsp;Add_number<br>&nbsp;&nbsp;@Str&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VARCHAR(4),<br>&nbsp;&nbsp;@Tablename&nbsp;&nbsp;VARCHAR(20),<br>&nbsp;&nbsp;@Coloumname&nbsp;VARCHAR(20)<br>AS<br>&nbsp;&nbsp;DECLARE&nbsp;@SQL&nbsp;NVARCHAR(1000)<br>&nbsp;&nbsp;DECLARE&nbsp;@maxmonth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CHAR(4)&nbsp;------数据中最大的月份<br>&nbsp;&nbsp;DECLARE&nbsp;@month&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CHAR(4)&nbsp;&nbsp;------寄存数据中最大的月份<br>&nbsp;&nbsp;DECLARE&nbsp;@maxnum&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CHAR(4)&nbsp;&nbsp;-------数据中最大月份中的最大流水号<br>&nbsp;&nbsp;DECLARE&nbsp;@num&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CHAR(4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--------寄存数据中最大月份中的最大流水号<br>&nbsp;&nbsp;DECLARE&nbsp;@currentmonth&nbsp;&nbsp;CHAR(4)&nbsp;-----系统当前月份<br>&nbsp;&nbsp;DECLARE&nbsp;@current&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CHAR(4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-------积存系统当前月份<br>&nbsp;&nbsp;DECLARE&nbsp;@N&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-------&nbsp;@Tablename的记录数<br>&nbsp;&nbsp;DECLARE&nbsp;@NO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;------寄存@Tablename的记录数<br>&nbsp;&nbsp;DECLARE&nbsp;@returnnum&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CHAR(10)&nbsp;&nbsp;-------返回值--当前对应的编号<br>&nbsp;&nbsp;DECLARE&nbsp;@return&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CHAR(10)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;------寄存返回值--当前对应的编号<br>&nbsp;&nbsp;DECLARE&nbsp;@number&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CHAR(4)<br>&nbsp;&nbsp;DECLARE&nbsp;@numbers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CHAR(10)<br>&nbsp;&nbsp;DECLARE&nbsp;@CHAR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VARCHAR(4)<br>&nbsp;&nbsp;DECLARE&nbsp;@charnum&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VARCHAR(4)<br><br>&nbsp;&nbsp;SELECT&nbsp;&nbsp;@SQL&nbsp;=&nbsp;'SELECT&nbsp;@maxmonth&nbsp;=&nbsp;SUBSTRING(MAX('&nbsp;+&nbsp;@Coloumname&nbsp;+&nbsp;'),&nbsp;3,&nbsp;4)&nbsp;FROM&nbsp;'&nbsp;+&nbsp;@Tablename<br>&nbsp;&nbsp;EXEC&nbsp;sp_executesql&nbsp;@SQL,&nbsp;N'@maxmonth&nbsp;VARCHAR(4)&nbsp;OUTPUT',&nbsp;@month&nbsp;OUTPUT<br><br>&nbsp;&nbsp;SELECT&nbsp;&nbsp;@SQL&nbsp;=&nbsp;'SELECT&nbsp;@Maxnum&nbsp;=&nbsp;SUBSTRING(MAX('&nbsp;+&nbsp;@Coloumname&nbsp;+&nbsp;'),&nbsp;7,&nbsp;4)&nbsp;FROM&nbsp;'&nbsp;+&nbsp;@Tablename<br>&nbsp;&nbsp;EXEC&nbsp;sp_executesql&nbsp;@SQL,&nbsp;N'@Maxnum&nbsp;VARCHAR(4)&nbsp;OUTPUT',&nbsp;@num&nbsp;OUTPUT<br><br>&nbsp;&nbsp;SELECT&nbsp;&nbsp;@SQL&nbsp;='SELECT&nbsp;@currentmonth&nbsp;=&nbsp;SUBSTRING(CONVERT(CHAR(16),&nbsp;GETDATE(),&nbsp;112),&nbsp;3,&nbsp;4)'<br>&nbsp;&nbsp;EXEC&nbsp;sp_executesql&nbsp;@SQL,N'@currentmonth&nbsp;VARCHAR(4)&nbsp;OUTPUT',&nbsp;@current&nbsp;OUTPUT<br><br>&nbsp;&nbsp;SELECT&nbsp;&nbsp;@SQL&nbsp;='SELECT&nbsp;@N&nbsp;=&nbsp;COUNT(*)&nbsp;FROM&nbsp;'&nbsp;+&nbsp;@Tablename<br>&nbsp;&nbsp;EXEC&nbsp;sp_executesql&nbsp;@SQL,&nbsp;N'@N&nbsp;VARCHAR(4)&nbsp;OUTPUT',&nbsp;@NO&nbsp;OUTPUT<br><br>&nbsp;&nbsp;IF&nbsp;@NO&nbsp;=&nbsp;0<br>&nbsp;&nbsp;BEGIN<br>&nbsp;&nbsp;&nbsp;&nbsp;SELECT&nbsp;&nbsp;@SQL&nbsp;=&nbsp;'SELECT&nbsp;@returnnum&nbsp;=&nbsp;'''&nbsp;+&nbsp;@Str&nbsp;+&nbsp;@current&nbsp;+&nbsp;'0001'''<br>&nbsp;&nbsp;&nbsp;&nbsp;EXEC&nbsp;sp_executesql&nbsp;@SQL,&nbsp;N'@returnnum&nbsp;VARCHAR(10)&nbsp;OUTPUT',&nbsp;@return&nbsp;OUTPUT<br>&nbsp;&nbsp;END<br><br>&nbsp;&nbsp;IF&nbsp;@month&nbsp;=&nbsp;@current<br>&nbsp;&nbsp;BEGIN<br>&nbsp;&nbsp;&nbsp;&nbsp;SELECT&nbsp;@SQL&nbsp;=&nbsp;'SELECT&nbsp;@number&nbsp;=&nbsp;CAST((CAST('''&nbsp;+&nbsp;@num&nbsp;+&nbsp;'''&nbsp;AS&nbsp;INT)&nbsp;+&nbsp;1)&nbsp;AS&nbsp;CHAR(4))&nbsp;'<br>&nbsp;&nbsp;&nbsp;&nbsp;EXEC&nbsp;sp_executesql&nbsp;@SQL,&nbsp;N'@number&nbsp;VARCHAR(10)&nbsp;OUTPUT',&nbsp;@numbers&nbsp;OUTPUT<br><br>&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;@numbers&nbsp;=&nbsp;'0000'&nbsp;+&nbsp;@numbers<br>&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;@numbers&nbsp;=&nbsp;SUBSTRING(@numbers,&nbsp;LEN(@numbers&nbsp;-&nbsp;3),&nbsp;4)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;SELECT&nbsp;@SQL&nbsp;=&nbsp;'SELECT&nbsp;@returnnum&nbsp;=&nbsp;'''&nbsp;+&nbsp;@Str&nbsp;+&nbsp;@current&nbsp;+&nbsp;@numbers&nbsp;+&nbsp;''''<br>&nbsp;&nbsp;&nbsp;&nbsp;EXEC&nbsp;sp_executesql&nbsp;@SQL,&nbsp;N'@returnnum&nbsp;VARCHAR(10)&nbsp;OUTPUT',&nbsp;@return&nbsp;OUTPUT<br>&nbsp;&nbsp;END<br><br>&nbsp;&nbsp;IF&nbsp;@month&nbsp;&lt;&nbsp;@current<br>&nbsp;&nbsp;BEGIN<br>&nbsp;&nbsp;&nbsp;&nbsp;SELECT&nbsp;@SQL&nbsp;=&nbsp;'SELECT&nbsp;@returnnum&nbsp;=&nbsp;'''&nbsp;+&nbsp;@Str&nbsp;+&nbsp;@current&nbsp;+&nbsp;'0001'''<br>&nbsp;&nbsp;&nbsp;&nbsp;EXEC&nbsp;sp_executesql&nbsp;@SQL,&nbsp;N'@returnnum&nbsp;VARCHAR(10)&nbsp;OUTPUT',&nbsp;@return&nbsp;OUTPUT<br>&nbsp;&nbsp;END<br><br>&nbsp;&nbsp;SELECT&nbsp;@month&nbsp;AS&nbsp;Month,&nbsp;@current&nbsp;AS&nbsp;CurMonth,<br>&nbsp;&nbsp;&nbsp;&nbsp;@num&nbsp;AS&nbsp;CurNum,&nbsp;LEN(@numbers)&nbsp;AS&nbsp;NumLen,&nbsp;@charnum&nbsp;AS&nbsp;Chrnum,<br>&nbsp;&nbsp;&nbsp;&nbsp;@numbers&nbsp;AS&nbsp;Num,&nbsp;@return&nbsp;AS&nbsp;Ret
 
这个过程要想通用,你还应该设置流水号的最后的长度,而不是简单的定义成4位,万一当天的交易量超过10000了呢?<br>再者,你的变量有几个起了保留字的名字,这样可能会有问题,不过我没有改,呢可以自己改。
 
SET&nbsp;@numbers&nbsp;=&nbsp;SUBSTRING(@numbers,&nbsp;LEN(@numbers&nbsp;-&nbsp;3),&nbsp;4)<br>&nbsp;&nbsp;&nbsp;&nbsp;這句是不是有問題?
 
是有问题:<br>&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;@numbers&nbsp;=&nbsp;SUBSTRING(@numbers,&nbsp;LEN(@numbers)&nbsp;-&nbsp;3,&nbsp;4)
 
后退
顶部