将变量设置为sproc中已执行语句的结果

时间:2013-01-05 12:33:59

标签: sql sql-server-2008 dynamic-sql

您是否有关于变量语法的简明教程?这是一个特色的一部分:

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

此外,如果你知道语法课程(最好不是百科全书) - 非常感谢和好!

1 个答案:

答案 0 :(得分:1)

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