Ich brauche einen SP, um mehrere Ergebnismengen zurückzugeben. Die zweite Reihe von Ergebnissen würde auf einer Spalte der ersten Reihe von Ergebnissen basieren.Stored Procedure gibt mehrere Ergebnismengen zurück
So:
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
Wie Rückkehr @ myTable1 und @ myTable2 mit meinem SP? Ist diese Syntax überhaupt richtig?
Ich entschuldige mich, ich bin immer noch ein Neuling in SQL ...
EDIT:
Also, ich bin so unter, dass in der letzten Zeile des Codes einen Fehler bekommen: " muss die skalare Variable „@ 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
erklären Wenn ich den Code bis zum zweiten select *
es funktioniert gut markieren und laufen ... wenn ich den Rest markieren sie die erste Variable wirkt wie nicht exist ...
EDIT2: Dieses Problem festgestellt. Danke Leute.
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)
Sollten Sie vorher gefragt haben, aber welche RDBMS verwenden Sie? – JNK
Es funktioniert nicht, wenn Sie DECLARE @ Mytable1 nicht in derselben Anweisung haben. Wenn Sie nur den letzten Teil markieren, befindet sich DECLARE nicht in dieser Abfrage. Diese Variablen sind nur für eine Abfrage geeignet und werden nicht beibehalten. – JNK
Microsoft SQL Server 2005 – EJC