无论如何我可以做类似的事情
无论如何我可以将变量放入 FROM 子句。像这样
SELECT * FROM myGetTableFunc(@tableName)
SELECT * FROM EXEC('SELECT * FROM ' + @tableName)
SELECT * INTO #myUndeclaredTable FROM @tableName
我认为你说对了。
基本上,我将有一些具有共享公共列的表,例如排序键等。在存储过程中,我使用这些共享列来处理表并加入一些东西,然后返回它。
但目前我需要为每个表创建一个新的存储过程,因为我不能在 FROM 子句中使用变量。将整个事情变成动态 SQL 是我唯一的解决方案吗?
诸如此类的事情OPENQUERY
OPENROWSET
是不可能的。
我想到了类似的东西
EXEC ('SELECT * INTO #myTempTable FROM ' + @tableName)
SELECT * FROM #myTempTable
但#myTempTable
似乎不可见,即使我认为它具有整个会话的范围。
感谢您的任何帮助!