2013-01-05 31 views
0

你有關於變量語法什麼好的簡明教程?這是一個存儲過程的一部分:設置變量導致執行的語句在一個存儲過程

Set @sql = 'Set ' + @calc + '= SUM(datalength(' + @column_name + '))/2 from ' + @table_name 
exec (@sql) 

而且它不工作 - 我得到一個Error converting data type varchar to numeric.這裏是模擬的例子:

DECLARE @calc numeric(18,2) 
DECLARE @sql nvarchar(1500), @column_name nvarchar(50), @table_name nvarchar(50) 
Set @column_name = 'EID' 
Set @table_name = 'CTY_SUPPORTED' 
Set @sql = 'Select @calc = SUM(datalength(' + @column_name + '))/2 from ' + @table_name 
exec (@sql) 
print @calc 

我很感興趣,歸因於可變@calc以下值:SUM(datalength(column_x))/2 from table_x

另外,如果你知道語法課(最好不要百科全書) - 很多感謝和gooday!

回答

1
Set @sql = 'Select @calc = SUM(datalength(' + @column_name + '))/2 from ' + @table_name 
exec (@sql) 
+0

謝謝你,但它說:'附近有語法錯誤EID''和'必須聲明標量變量‘@calc’.'(你可以看到我編輯的問題) – Sam

+0

是不是一個死的贈品是你必須聲明標量變量「@calc」。「? –

+0

不知道你的意思,我聲明,在第一行:DECLARE @calc數字(18,2) – Sam

相關問題