ALTER PROCEDURE  [dbo].[s_sp_Getprovince]@provincesql nvarchar(50)
AS
BEGIN      exec('select distinct * from tblProvince where 1=1 '+ @provincesql)END

解决方案 »

  1.   


    ALTER PROCEDURE  [dbo].[s_sp_Getprovince]@provincesql nvarchar(50)
    AS
    BEGIN      exec('select distinct * from tblProvince where 1=1 '+ @provincesql)END
      

  2.   

    --TRY
    ALTER PROCEDURE  [dbo].[s_sp_Getprovince]@provincesql nvarchar(50)
    AS
    BEGIN      EXEC('select distinct * from tblProvince where 1=1' + @provincesql)END
      

  3.   

    ALTER PROCEDURE  [dbo].[s_sp_Getprovince]@provincesql nvarchar(50)
    AS
    BEGIN      declare @var_cmd varchar(800);
          set @var_cmd='select distinct * from tblProvince where 1=' +  cast( 1 + @provincesql as varchar);
          execute(@var_cmd);
    END
    exec s_sp_Getprovince 'and zid=bj'
      

  4.   

    传入的SQL 是nvarchar,无法直接执行
    必须用EXECALTER PROCEDURE  [dbo].[s_sp_Getprovince]@provincesql nvarchar(50)
    AS
    BEGIN      exec('select distinct * from tblProvince where 1=1 '+ @provincesql)END
      

  5.   

    不细看题,想当然了,不好意思。ALTER PROCEDURE  [dbo].[s_sp_Getprovince] @provincesql nvarchar(50) 
    AS 
    BEGIN       declare @var_cmd varchar(800); 
          set @var_cmd='select distinct * from tblProvince where 1=1 ‘  + @provincesql); 
          execute(@var_cmd); 
    END --参数也改一下
    exec s_sp_Getprovince 'and zid=''bj'''
      

  6.   


    ALTER PROCEDURE  [dbo].[s_sp_Getprovince]@provincesql nvarchar(50)
    AS
    BEGIN      exec('select distinct * from tblProvince where 1=1 '+ @provincesql)END