我正在尝试存储查询结果并将其存储在@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
答案 0 :(得分:1)
为什么不将子查询移动到这样的过程中:
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