用 exec ( @mysql )

解决方案 »

  1.   

    把參數@mysql定義成nvarchar﹐再用sp_executesql執行﹐對于這種動態產生的SQL語句一般用sp_executesql比exec來執行好﹐而sp_executesql執行的參數必須是n開頭的那几種類型﹐如nvarchar,ntext...exec sp_executesql @mysql
      

  2.   

    有table501,数据库设计可能有问题
      

  3.   

    这个问题还是有点意思的:
    create procedure proc_Test
       @MYSQL varchar(4000),
    as
       declare @sql NVarchar(4000)
       declare @rec int
       select @sql=@mysql+N' select @r=@@IDENTITY '
       exec sp_executesql @mysql,N'@r int output',@r=@Rec output
       return @rec
    go调用:   declare @rec int
       exec @rec=proc_Test 'insert into (a,b,c) values ('a',1,'c')'   没有测试!
      

  4.   

    有误:调用:
       declare @rec int
       exec @rec=proc_Test 'insert into (a,b,c) values (''a'',1,''c'')'