declare @test varchar(8000) set @test='use northwind '+'go '+'select * from orders' execute @test
exec('use northwind '+'select * from orders')
这样就会出错阿 declare @test varchar(8000) set @test='use northwind '+'go '+'select * from orders' execute @test
declare @test varchar(8000) set @test='select * from northwind..orders' execute(@test) declare @test varchar(8000) set @test='use northwind select * from orders' execute(@test)
我的意思就是execute参数的字符串不能包含go啊,否则会出错阿,这个问题不知道怎样解决
GO 不是 Transact-SQL 语句;而是可为 osql 和 isql 实用工具及 SQL Server 查询分析器识别的命令。EXEC [ UTE ] ( { @string_variable | [ N ] 'tsql_string' } [ + ...n ] )里面需要的是构造出来的sql语句。
你为什么要包含go呢? 如果是访问同服务器下别的数据库表,可以 select * from 数据库.对象属主.表。直接来访问的。
set @test='use northwind
'+'go
'+'select * from orders'
execute @test
declare @test varchar(8000)
set @test='use northwind
'+'go
'+'select * from orders'
execute @test
set @test='select * from northwind..orders'
execute(@test)
declare @test varchar(8000)
set @test='use northwind select * from orders'
execute(@test)
如果是访问同服务器下别的数据库表,可以
select * from 数据库.对象属主.表。直接来访问的。
你可以用两个exec来处理。这样还可以判断执行情况。不要什么事情都搞一句。