我正在编写一个存储过程以查看两个表PersonTbl,UserTbl。首先在PersonTbl中搜索一个用户标识,如果用户标识在那里从UserTbl获得一个电子邮件地址并返回两者。但是,如果该ID不在那里,则搜索另外两个表(PersonsPendingTbl,UsersPendingTbl)作为ID和电子邮件。如果再次找到该ID,则返回null/nulls。到目前为止,这是我想到的,但不知道这是写它的最佳方式。让我知道是否有任何改变,你会建议;如果第一个结果为空,则查询其他表
create PROCEDURE [dbo].[MyNewSP]
@ID VARCHAR(MAX)
AS
DECLARE @userID VARCHAR(50)
DECLARE @Email VARCHAR(100)
DECLARE @currentlyActive CHAR
BEGIN
SELECT
@userID = userTbl.ID ,
@Email = personTbl.EMAIL,
@currentlyActive = 'Y'
FROM
personTbl
INNER JOIN userTbl ON personTbl.person_id = userTbl.person_id
WHERE
(userTbl.ID = @ID)
IF (@userID != @ID) --Check to see if null
BEGIN
SELECT @currentlyActive = 'N'
SELECT
upt.ID ,
ppt.EMAIL,
@currentlyActive
FROM
PersonsPendingTbl ppt
INNER JOIN dbo.UsersPendingTbl upt ON ppt.person_id = upt.person_id
WHERE
(upt.ID = @ID)
END
ELSE
BEGIN
SELECT
@userID ,
@Email ,
@currentlyActive
END
END
的'CREATE PROCEDURE'缺少 – Yaroslav 2012-08-07 08:32:15
更正缺少一行。 – windowskm 2012-08-07 08:52:42