PersonTbl、UserTblの2つのテーブルを調べるストアドプロシージャを作成しています。最初にPersonTblでuserIDを検索し、userIDが存在する場合は、UserTblから電子メールアドレスを取得して両方を返します。ただし、IDがない場合は、他の2つのテーブル(PersonsPendingTbl、UsersPendingTbl)でIDと電子メールを検索してください。IDが再度見つからない場合は、null/nullを返します。これまでのところ、これは私が思いついたものですが、それがそれを書くための最良の方法であるかどうかはわかりません。おすすめの変更があれば教えてください。
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