sql - 如何将某个点设置为地理列的默认值?

标签 sql sql-server spatial geography

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

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

最佳答案

试试这个:

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]))

关于sql - 如何将某个点设置为地理列的默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24798477/

相关文章:

mysql - 使用 SQL 计算特定发生次数

php - SQL:如果在另一个表中找不到给定的 ID,则将值插入一个表中(使用单个查询)

sql - 有没有办法缩短这个查询?

r - 用 R 估计多维空间中的密度

sql - 为什么我的 As400 无法从新创建的成员别名中进行选择?

c# - 从数据库中的二进制文件写入 PDF

sql - 如何优化 BINARY(N) 的 SQL 查询?

sql-server - 选择在 24 小时时间范围内创建的记录

sql-server-2008 - SQL Server 2008 地理 LineString 大小限制

php - 使用 PHP pack() 将 WKT 转换为 WKB