如果我有一个表实际上保存另一个表的表名和列名,如下所示:
TestTable的
TheTable nvarchar
TheColumn nvarchar
Sudo Logic
SELECT
t.Something
,t.SomethingElse
,t.TheTable
,t.TheColumn
,(SELECT *TheColumn* FROM *TheTable*) AS Something
FROM TestTable t
即使写下这个问题,我也会得到几个类似问题的建议,但我希望有一个更简单的例子,如果有一个,所以无意复制一个问题。其他例子似乎具体而且相当广泛。
谢谢。
答案 0 :(得分:1)
这里有一些基于示例代码的动态sql:
/* set up a few parameters */
DECLARE @table_name AS nvarchar(100)
DECLARE @column_name AS nvarchar(100)
DECLARE @SQLQuery AS NVARCHAR(1000)
/* set the parameter values */
SELECT @table_name=TheTable, @column_name=TheColumn
FROM TestTable
WHERE -- ADD SOME LOGIC HERE TO GET SINGLE ROW
/* Build SQL String with parameters */
SET @SQLQuery =
'SELECT ' + @column_name +
' FROM ' + @table_name
-- + ' WHERE clause if required'
/* Execute SQL */
EXECUTE(@SQLQuery)
答案 1 :(得分:0)
是的,这可以使用动态sql完成。以下是一些可以帮助您入门的链接:
您还应该了解使用Dynamic sql的potential dangers。