Sql 如何将点设置为地理列的默认值?
我有一个SQL命令,它为空间数据创建一个带有Sql 如何将点设置为地理列的默认值?,sql,sql-server,spatial,geography,Sql,Sql Server,Spatial,Geography,我有一个SQL命令,它为空间数据创建一个带有GEOGRAPHY类型列的表,该列用于存储纬度/经度对(一个点)。如何为该列设置默认值?例如,(0,0)处的点 我认为你不能直接做这件事。您可以以迂回的方式使用插入触发器,但这不是一个完全令人满意的解决方案。不确定这是否是最佳方法,但作为参考,您可以定义它: 试试这个: CREATE TABLE #TEMP(ID INT,COL1 GEOGRAPHY DEFAULT(CONVERT(GEOGRAPHY,'POINT (0 0)'))) INSERT I
GEOGRAPHY
类型列的表,该列用于存储纬度/经度对(一个点)。如何为该列设置默认值?例如,(0,0)处的点
我认为你不能直接做这件事。您可以以迂回的方式使用插入触发器,但这不是一个完全令人满意的解决方案。不确定这是否是最佳方法,但作为参考,您可以定义它: 试试这个:
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)
就你而言
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]))
只是不要制造双重答案。。。也可以是
默认地理::点(0,04326)
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)
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]))