如何将点设置为地理列的默认值?

Rob*_*ert 5 sql sql-server geography spatial

我有这个SQL命令,该命令GEOGRAPHY为空间数据创建一个带有-type列的表,该表用于存储纬度/经度对(点)。如何为该列设置默认值?例如,点(0,0)?

CREATE TABLE [dbo].[StationLocations] (
    [Id] [int] NOT NULL,
    [StationId] [int] NOT NULL,
    [Position] [Geography],
CONSTRAINT [PKStationLocations] PRIMARY KEY CLUSTERED ([Id]))
Run Code Online (Sandbox Code Playgroud)

Rec*_*ive 4

尝试这个:

CREATE TABLE #TEMP(ID INT,COL1 GEOGRAPHY DEFAULT(CONVERT(GEOGRAPHY,'POINT (0 0)')))
INSERT INTO #TEMP (ID) VALUES(1)
SELECT * FROM #TEMP
ID  COL1
1   0xE6100000010C00000000000000000000000000000000

SELECT ID,CONVERT(VARCHAR,COL1) AS DEF_VALUE FROM #TEMP
ID  DEF_VALUE
1   POINT (0 0)
Run Code Online (Sandbox Code Playgroud)

在你的情况下

CREATE TABLE [dbo].[StationLocations] (
    [Id] [int] NOT NULL,
    [StationId] [int] NOT NULL,
    [Position] [Geography] DEFAULT(CONVERT(GEOGRAPHY,'POINT (0 0)')),
CONSTRAINT [PKStationLocations] PRIMARY KEY CLUSTERED ([Id]))
Run Code Online (Sandbox Code Playgroud)

  • 只是不要创建双重答案...也可以是`DEFAULT geography::Point(0, 0, 4326)` (4认同)