我需要一個SP來返回多組結果。第二組結果將基於第一組結果的一列。存儲過程返回多個結果集
所以:
declare @myTable1 table(field0 int,field1 varchar(255))
insert into @myTable1 select top 1 field0, field1 from table1
declare @myTable2 table(field0 int,field3 varchar(255))
insert into @myTable2
select field0, field3 from table2
where @myTable1.field0 = @myTable2.field0
如何返回@ MYTABLE1和@ myTable2我的SP?這句法甚至是對的嗎?
我的道歉,我仍然在SQL新手...
編輯:
所以,我在下面的代碼的最後一行得到一個錯誤說:「必須聲明標量變量「@ MYTABLE1」」
declare @myTable1 table(field0 int,field1 dateTime)
insert into @myTable1
select top 1 field0, field1
from someTable1 m
where m.field4 > 6/29/2009
select * from @myTable1
select *
from someTable2 m2
where m2.field0 = @myTable1.field0
如果我突出和運行代碼,直到第二select *
正常工作...... 時,我強調它的作用,其餘像第一變量不存在...
EDIT2: 想出了這個問題。多謝你們。
declare @myTable1 table(field0 int,field1 dateTime)
insert into @myTable1
select top 1 field0, field1
from someTable1 m
where m.field4 > 6/29/2009
select * from @myTable1
select *
from someTable2 m2
where m2.field0 = (select field0 from @myTable1)
以前應該問過,但您使用的是什麼RDBMS? – JNK 2010-10-06 20:07:56
如果在同一個語句中沒有DECLARE @ Mytable1,它將不起作用。如果只突出顯示最後一部分,則DECLARE不在該查詢中。這些變量僅適用於一個查詢,並且不會持續。 – JNK 2010-10-06 20:16:10
Microsoft SQL Server 2005 – EJC 2010-10-06 20:17:01