Joe*_*ips 8 t-sql evaluation sql-server-2005
我有一个存储过程,允许IN参数指定要使用的数据库.然后,我在该数据库中使用预先确定的表进行查询.我遇到的问题是在查询中将表名与该数据库名连接起来.如果T-SQL有一个评估函数,我可以做类似的事情
eval(@dbname + 'MyTable')
Run Code Online (Sandbox Code Playgroud)
目前我卡住创建一个字符串,然后使用exec()该字符串作为查询运行.这很麻烦,我宁愿不必创建一个字符串.有没有办法可以评估变量或字符串,所以我可以做以下的事情?
SELECT *
FROM eval(@dbname + 'MyTable')
Run Code Online (Sandbox Code Playgroud)
我希望它评估,所以它最终出现如下:
SELECT *
FROM myserver.mydatabase.dbo.MyTable
Run Code Online (Sandbox Code Playgroud)
尝试sp_executesql内置函数.您基本上可以在proc中构建SQL字符串,然后调用
exec sp_executesql @SQLString.
DECLARE @SQLString nvarchar(max)
SELECT @SQLString = '
SELECT *
FROM ' + @TableName
EXEC sp_executesql @SQLString
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14669 次 |
| 最近记录: |