CREATE PROCEDURE selectPCompanyData
@companyCity varchar(20),
@companyQu varchar(20),
@i int
AS
select top 10 * from companyData where companyCity=@companyCity and companyQu=@companyQu and companyID not in (select top @i companyID from companyData) order by companyID 
GO提示第 6 行: '@i' 附近有语法错误。较菜请指点

解决方案 »

  1.   

    变量 参数是不可以放在select 后的
      

  2.   

    declare @sql nvarchar(1000)
    set @sql = 'select top 10 * from companyData where companyCity=@companyCity and companyQu=@companyQu and companyID not in (select top '+@i+' companyID from companyData) order by companyID '
    exec @sql
      

  3.   

    CREATE PROCEDURE selectPCompanyData
    @companyCity varchar(20),
    @companyQu varchar(20),
    @i int
    AS
    Declare @tmp nvarchar(500)
    set @tmp='select top 10 * from companyData where companyCity='''+@companyCity+''' and companyQu='''+@companyQu+''' and companyID not in (select top '+cast(@i as varchar(10)) +' companyID from companyData) order by companyID '
    exec sp_executesql @tmp
    GO
      

  4.   

    exec sp_executesql @sql,'参数',....
      

  5.   

    CREATE PROCEDURE selectPCompanyData
    @companyCity varchar(20),
    @companyQu varchar(20),
    @i int
    AS
    exec('select top 10 * from companyData where companyCity=@companyCity and companyQu=@companyQu and companyID not in (select top '+@i+' companyID from companyData) order by companyID ')
    GO