连接的SQL语句

时间:2015-08-05 18:57:21

标签: sql sql-server

我正在处理一个查询,该查询构建了sys.database主表中的表名列表。然后我在concat语句中使用这些名称来获取每个数据库中的信息。我正在通过while循环运行整个事情来打击所有表,带有一个计数器。

即。

set @sql = 'select top 10 * from ' + (select dbname from @table where tabid = @i + '.dbo.**tablename** where NAME = '**String Value**'

当我print @sql的结果时,它给了我正确的语法,并且我能够毫无问题地运行命令。

当我将@sql设置为exec时,我收到错误

  

dbname 中的数据库选择前10 *不存在。”

就像执行忽略了select之后的所有内容。

1 个答案:

答案 0 :(得分:0)

我怀疑你错误地打电话给EXEC。

使用T-SQL查询调用'exec'时,请务必将目标字符串括在括号中,例如

DECLARE @FOO VARCHAR(100)
Set @FOO = 'SELECT TOP 5 * from SOMETABLE'
EXEC (@FOO) -- not EXEC @FOO