0

クエリ結果を保存して @Parameter に保存しようとしています。それを INSERT クエリで使用したいと思います。私は SP を初めて使用しますが、これを正しく行っているかどうか、または可能かどうかはわかりません。

CREATE Proc [dbo].[spTrans]
@Queue int,
@Parameter int = (SELECT TOP 1 TicketNumber + 1 from tblData WHERE QueueId = @Queue)
AS
BEGIN  
   INSERT INTO tblData (QueueId,Parameter) VALUES (@Queue,@Parameter)
END
4

1 に答える 1

2

次のように、サブクエリをプロシージャに移動してみませんか。

CREATE Proc [dbo].[spTrans]
  @Queue int
AS
BEGIN  
  DECLARE @Parameter int 
  SELECT TOP 1 
    @Parameter = TicketNumber + 1 
  FROM tblData 
  WHERE QueueId = @Queue;

  INSERT INTO 
    tblData (QueueId,Parameter) 
  VALUES (@Queue,@Parameter);
END

オプションで @Parameter を渡す必要がある場合は、次のようにします。

CREATE Proc [dbo].[spTrans]
  @Queue int
, @Parameter int
AS
BEGIN  
  IF @Parameter = 0 
    SELECT TOP 1 
      @Parameter = TicketNumber + 1 
    FROM tblData 
    WHERE QueueId = @Queue;

  INSERT INTO 
    tblData (QueueId,Parameter) 
  VALUES (@Queue,@Parameter);
END
于 2013-07-11T15:00:59.347 に答える