2016-07-13 13 views
0

Ich habe die folgende Abfrage. Ich möchte Ergebnis in meiner Temp-Tabelle speichern und isWithInCircle Wert in Variable auch, wie geht das?So speichern Sie Daten in der temporären Tabelle von meiner Abfrage

declare @source geography = geography::Point(30.221101852485987, 71.575927734375, 4326), @target geography = geography::Point(29.9358952133724, 71.817626953125, 4326); 

declare @radius_in_miles int = 100; 

declare @radius_in_meters float = @radius_in_miles * 1081.7316; 

select @target.STBuffer(@radius_in_meters).STContains(@source) AS [isWithinCircle], 
@target.STDistance(@source) AS [distance_in_meters], 
@target.STBuffer(@radius_in_meters).STDisjoint(@source) AS [isPastCircle]; 
+1

Warum haben Sie getaggt 3 verschiedene Versionen von SQL Server? – DavidG

+0

Ich denke, das hilft anderen Entwicklern –

+1

Nein, es kommt nicht darauf an, welche Sache zählt, welche Version Sie verwenden. Wenn Sie möchten, dass es versionsunabhängig ist, markieren Sie keine bestimmte Version. Wie wäre es mit v2014 oder v2016? – DavidG

Antwort

1

Aufgrund meiner begrenzten Verständnis von dem, was Sie zu tun versuchen, aber das sollte funktionieren ...

IF OBJECT_ID('tempdb..#MyTempTable', 'U') IS NOT NULL DROP TABLE #MyTempTable; 

declare @source geography = geography::Point(30.221101852485987, 71.575927734375, 4326), @target geography = geography::Point(29.9358952133724, 71.817626953125, 4326); 

declare @radius_in_miles int = 100; 

declare @radius_in_meters float = @radius_in_miles * 1081.7316; 

declare @isWithinCircle int; 

select @target.STBuffer(@radius_in_meters).STContains(@source) AS [isWithinCircle], 
@target.STDistance(@source) AS [distance_in_meters], 
@target.STBuffer(@radius_in_meters).STDisjoint(@source) AS [isPastCircle] 
into #MyTempTable; 

select @isWithinCircle = isWithinCircle from #MyTempTable 

select @isWithinCircle 
+0

Danke Dear Your Great :) –