我是新來這個存儲過程的業務,我相信這是直截了當的只是不熟悉的語法或如何返回。從存儲過程中的參數中選擇兩個表
我傳入一個參數ID,我想返回有關該ID的信息,但它可能來自兩個表中的一個。取決於表格取決於我返回的列。
ALTER PROCEDURE name
@ID varchar (40)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @result int
IF exists (SELECT id, name, state
FROM tab1
WHERE tab1.id = @ID
)
begin
/* return somehow, maybe as a temp table from previous check */
end
else (SELECT id, name, country, state
FROM tab2
WHERE tab2.id = @ID
)
begin
/* return information from tab2 instead */
end
end
go
檢查它們是否存在於表中最好的方式,還是應該真的是一個連接?我的SQL技能是新的,我不確定存儲過程中有什麼可用的。
我是如何返回信息的? 我的java訪問它期待這個作爲這個過程中的第二個結果集。 (不,我沒有找出第一個結果集)第一個結果集將大致相同,檢查存儲在不同數據庫中的兩個表之間的差異,但會涉及更多,我只是希望這個結果集第一個工作。
在此先感謝您的幫助。
如果兩張表中出現相同的ID,你會怎麼做? –
這兩個表中的ID應該是唯一的。其中一個將是國家和其他國際人士。通過重複select語句,我可以很好地工作,但是這不會使時間「加倍」,並且將它存儲爲臨時文件不會更快嗎?所以 'INTO#tmpNA',然後用'SELECT * FROM #tmp NA'檢索 – bbotz
不需要臨時表。它會增加一個額外的步驟並會減慢查詢。 – ClearLogic