Sql 将变量设置为存储过程中已执行语句的结果
你有关于变量语法的简明教程吗?这是存储过程的一部分:Sql 将变量设置为存储过程中已执行语句的结果,sql,sql-server-2008,dynamic-sql,Sql,Sql Server 2008,Dynamic Sql,你有关于变量语法的简明教程吗?这是存储过程的一部分: Set @sql = 'Set ' + @calc + '= SUM(datalength(' + @column_name + '))/2 from ' + @table_name exec (@sql) 它不起作用-我在将数据类型varchar转换为numeric时遇到一个错误。下面是一个模拟示例: DECLARE @calc numeric(18,2) DECLARE @sql nvarchar(1500), @column_nam
Set @sql = 'Set ' + @calc + '= SUM(datalength(' + @column_name + '))/2 from ' + @table_name
exec (@sql)
它不起作用-我在将数据类型varchar转换为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
如果你知道语法课(最好不是百科全书)——非常感谢,再见 谢谢,但是它说:
在'EID'附近的语法不正确
和必须声明标量变量“@calc”。
(你可以看到我编辑的问题)你必须声明标量变量“@calc”。
?不确定你的意思,我在第一行声明:声明@calc numeric(18,2)啊,我的错误,你需要执行包含参数的动态sql。感谢flem,了解sp_executesql非常有用!
Set @sql = 'Select @calc = SUM(datalength(' + @column_name + '))/2 from ' + @table_name
exec (@sql)