2010-12-27 2 views
1

Ich versuche, eine gespeicherte proicticure zu schreiben, die alle townIDs aus der Region_TownPage-Tabelle erhält. Dann sollte ich die City, Stateinitials aller TownIDs bekommen.Verwendung von Array in Sql möglich?

Alter PROCEDURE [dbo].[GetTownDetailsforRegionID] 
@RegionID int 

AS 
BEGIN 
Declare @townID int 

    set @townID = (Select townID from Region_TownPage where regionID [email protected]) 

SET NOCOUNT ON; 

    Select City, StateInitials,TownID from TownPage where TownID [email protected] 


END 

Ich weiß nicht, wie man ein Array hier in SQL verwenden. Wenn mir jemand dabei helfen könnte, weiß ich das wirklich zu schätzen.

Vielen Dank im Voraus!

Antwort

5

Ich glaube nicht, dass Sie ein Array brauchen - Sie müssen nur die Tabellen beitreten?

Select r.RegionId, 
     t.TownId, 
     t.City, 
     t.StateInitials 

From Region_TownPage r 
Join TownPage t on r.TownId = t.TownId 
Where r.RegionId = @RegionId 
+2

Angenommen, diese Frage ist seine eigentliche Abfrage, würde ich zustimmen, dies ist der beste Ansatz. Andernfalls könnte die andere Antwort der Verwendung einer Tabelle vorzuziehen sein, abhängig von der Komplexität der Abfrage – JoshBerke

+0

vereinbart. Dies wäre der Weg, es zu tun, es sei denn, Sie müssen die townIDs für etwas in der SP später im Speicher behalten, aber für Ihr kleines Beispiel wäre ein Join die bessere Lösung. – bflosabre91

+0

Das ist perfekt gemacht. Genial. Vielen Dank!! – Ram

4

Sie würden eine Tabellenvariable anstelle eines int deklarieren. also wäre es etwas wie