1

私は空間データ型と SQL サーバーも初めて使用します。次のテーブルがあります。

  • 表 (A)ZipCodesUSA

    • 列:zipcodes| latitude| longitude| city| state

  • 表(B)US_Cities_longitude_Latitude

    • 列:ID int| City nvarchar(40)| Coordinates GEOGRAPHY|

私がやろうとしているのは、SPROC を作成して、すべてのデータをテーブルAからGEOGRAPHY に転送しB、状態ごとに GEOGRAPHY に変更することです。変更はありますが、状態ごとに 1 行のみです。なんで?私はSELECT 1何も指定しませんでした。前もって感謝します!

ALTER PROC dbo.USA_Cities
@StateAbbr NVARCHAR(2)
AS
BEGIN

    SET NOCOUNT ON;

    DECLARE @City NVARCHAR(30)
    DECLARE @Longitude NVARCHAR(50)
    DECLARE @Latitude  NVARCHAR(50)

    SELECT  @City = City, @Longitude= Longitude,@Latitude= Latitude 
    FROM ZipCode
    WHERE StateAbbr = @StateAbbr


    INSERT INTO dbo.US_Cities(City, Coordinates)
    VALUES(@City, geography::Point(ISNULL(@Longitude, ''),ISNULL(@Latitude, ''), 4326))

END;


EXEC dbo.USA_Cities 'NY'
4

2 に答える 2

0

CREATE PROC [dbo].[USA_CitiesModified] @StateAbbr NVARCHAR(2) AS BEGIN

SET NOCOUNT ON;     

INSERT INTO dbo.US_Cities(City, Coordinates)
SELECT  City, geography::Point(ISNULL(Longitude, ''),ISNULL(Latitude, ''), 4326)
FROM dbo.ZipCode
WHERE StateAbbr = @StateAbbr

終わり;

素晴らしい作品、ありがとう!

于 2013-09-02T11:08:37.263 に答える