我运行了一下语句可总出现错误,具体如下:
--其中参数在之前已经被declare
select @A = A FROM' + @table
+ ' WHERELEFT(code, 1) = ' + LEFT(@incomingcode, 1)
+ ' AND CHARINDEX(LTRIM(RTRIM(code)), ' + @incomingcode+ ') = 1' +
' ORDER BY LEN(code) DESC
然后,
set @Total = @balance / @A + @freetotal
系统错误信息:
Line 32: Incorrect syntax near ' + @table
+ '.
于是我就用下边的代替:
declare @SQL VARCHAR(500)
SELECT @SQL = 'select A FROM ' +
LTRIM(RTRIM(@table)) + ' WHERE LEFT(Code, 1) = ' + LEFT(@incomingcode, 1)
+ ' AND CHARINDEX(LTRIM(RTRIM(Code)), ' + @incomingcode+ ') = 1' +
' ORDER BY LEN(Code) DESC'
EXEC (@SQL)
set @Total = @balance / CAST(@SQL AS float) + @freetotal
系统错误信息:
Msg 8114, Level 16, State 5, Procedure, Line 38
Error converting data type varchar to float.
高手指点
|