0
我正在研究T-SQL中的一些非常长且复杂的过程,我需要在查询中使用相当多的变量。SQL Server上的存储过程中的查询中的变量 - 如何?
我就死在这样的事情:
SELECT @TableSQL = 'SELECT '
+ @columnsForInsert
+ '= COALESCE(@columnsForInsert
+ ''], ['', '''')
+ name
FROM MIGRATION_DICTIONARIES.dbo.' + @TableName + '_COLUMNS '
EXEC sp_executesql @TableSQL
PRINT @columnsForInsert
正如你可以看到我尝试将所有从一些临时表中的行连接成一条线,然后将其分配给@columnsForInsert
变量。但是,当我通过sp_executesql
运行此字符串时,它将转到@columnsForInsert
不可见的范围。
你有没有人知道如何让这个跑步?
换句话说。我有类似的东西
SELECT @columnsForInsert = COALESCE(@columnsForInsert + '], [', '') + name
FROM MIGRATION_DICTIONARIES.dbo.Foobar_COLUMNS
这在我的程序中正常工作。然而,在Foobar的最终版本将会变得如此简单,以至于@tableName
就不起作用。我怎样才能做到这一点?
我使用Microsoft SQL Server 2012
语法没有意义... – 2013-05-09 07:51:31
我需要使它在3个数据库和不同的表名上工作,所以我需要动态地准备查询,这是我发现的所有内容。其他像这样构建的查询,但我不知道如何将结果分配给变量。如果你有更好的想法如何解决它 - 我是开放的。 – Moby04 2013-05-09 08:00:20