首页 > 解决方案 > 在存储过程中查找和使用值

问题描述

我试图找到一个值,然后在同一个 SQL 存储过程中的另一个语句中使用它。但是我迷失了语法(如果这是可能的话)。

下面我发布了我的代码,因为这将是完全解释的最简单方法。

CREATE PROCEDURE FindRuidForUser
    @Email nvarchar (160),
    @RUId int,
    @DeskLocation nvarchar(160),
    @ExtraInformation nvarchar(160),
    @PrimaryWorkStation nvarchar(160),
    @Date datetime
AS
    SELECT RUId 
    FROM RegisteredUsers
    WHERE Email = @Email

RUId = @RUId

Then

    INSERT INTO diffrenttable (RUId, PrimaryWorkStation, DeskLocation, ExtraInformation, TimeCreated)
    VALUES (@RUId, @PrimaryWorkStation, @DeskLocation, @ExtraInformation, @TimeCreated)

我首先想找到 RUId,然后我想将它与我将使用的其他变量一起插入到一个单独的表中。

任何帮助是极大的赞赏。

谢谢 !

标签: sqlsql-server

解决方案


对您的存储过程进行一些调整:在您的

select top 1 @RUId = RUId from RegisteredUsers
where Email = @Email

我添加了一个顶部,以防您为一封电子邮件返回更多 RUI。

create procedure FindRuidForUser

@Email nvarchar (160),
@RUId int,

@DeskLocation nvarchar(160),
@ExtraInformation nvarchar(160),
@PrimaryWorkStation nvarchar(160),
@Date datetime


as

select top 1 @RUId = RUId from RegisteredUsers
where Email = @Email



Then

INSERT into diffrenttable (RUId,PrimaryWorkStation,DeskLocation,ExtraInformation, TimeCreated)
values (@RUId, @PrimaryWorkStation, @DeskLocation, @ExtraInformation, @TimeCreated)

推荐阅读