execute('use northwind  '+'select * from orders')

解决方案 »

  1.   

    declare @test varchar(8000)
    set @test='use northwind
    '+'go
    '+'select * from orders'
    execute @test
      

  2.   

    exec('use northwind  '+'select * from orders')
      

  3.   

    这样就会出错阿
    declare @test varchar(8000)
    set @test='use northwind
    '+'go
    '+'select * from orders'
    execute @test
      

  4.   

    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)
      

  5.   

    我的意思就是execute参数的字符串不能包含go啊,否则会出错阿,这个问题不知道怎样解决
      

  6.   

    GO 不是 Transact-SQL 语句;而是可为 osql 和 isql 实用工具及 SQL Server 查询分析器识别的命令。EXEC [ UTE ] ( { @string_variable | [ N ] 'tsql_string' } [ + ...n ] )里面需要的是构造出来的sql语句。
      

  7.   

    你为什么要包含go呢?
    如果是访问同服务器下别的数据库表,可以
    select * from 数据库.对象属主.表。直接来访问的。
      

  8.   

    如果语句里面包含Create View或者Create Table之类的就要Go阿
      

  9.   

    --如果语句里面包含Create View或者Create Table之类的就要Go阿
    你可以用两个exec来处理。这样还可以判断执行情况。不要什么事情都搞一句。
      

  10.   

    但如果每个Create View或者Create Table都分开语句执行的话,那么每个语句开头都要加use,数量多起来就难受了