我可以在select语句中将变量用作列吗?

时间:2013-03-06 05:44:12

标签: asp.net sql sql-server-2008 tsql stored-procedures

我想从我的存储过程中选择一个变量,这样如果我在ADO.net中使用ExecuteScalar,我就可以得到变量值。

我的存储过程就是这个

    CREATE PROCEDURE dbo.SPListGetID
    (
      @category varchar(100)
    )
    AS
      declare @maxListId int
      set @maxListId=(select max(MaterialId) from tblMaterialLists 
                      where category =@category and mode='1')
      set @maxListId=@maxListId+1;
      select @maxListId
      /* SET NOCOUNT ON */
      RETURN

此处不允许select @maxListId。我该怎么做才能做到这一点?

4 个答案:

答案 0 :(得分:2)

尝试使用SET @maxListId=@maxListId+1;代替@maxListId=@maxListId+1;

答案 1 :(得分:1)

您需要稍微更改语法

select @maxListId= max(MaterialId) where category =@category and mode='1'

答案 2 :(得分:0)

尝试

RETURN @maxListId而不是

select @maxListId
      /* SET NOCOUNT ON */
      RETURN

答案 3 :(得分:0)

CREATE PROCEDURE dbo.SPListGetID
    (
      @category varchar(100)
    )
    AS
begin
      declare @maxListId int
      select  @maxListId= max(MaterialId) from tblMaterialLists 
                      where category =@category and mode='1'
      set @maxListId=@maxListId+1;

     end