2017-01-06 43 views
3

TSQL MSSQL 2008R2CONVERT_IMPLICIT插入地理数据类型到一个地理数据类型列时

为什么以下进行CONVERT_IMPLICIT即地理数据类型转换成地理数据类型?

DECLARE @xPolygon NVARCHAR(MAX) = '53.835134 -2.474670, 53.812436 -0.288391, 52.417944 -0.090637, 52.270286 -3.018494, 53.835134 -2.474670' 

IF OBJECT_ID('#xSpatialTable') IS NOT NULL 
    DROP TABLE #xSpatialTable; 
CREATE TABLE #xSpatialTable (
    id   INT IDENTITY (1,1) CONSTRAINT PK_xSpatialTable PRIMARY KEY 
    ,GeogCol1 GEOGRAPHY 
    ,GeogCol2 AS GeogCol1.STAsText() 
); 

INSERT INTO #xSpatialTable (GeogCol1) 
VALUES (GEOGRAPHY::STPolyFromText('POLYGON((' + @xPolygon + '))', 4326)); 

IF OBJECT_ID('#xSpatialTable') IS NOT NULL 
    DROP TABLE #xSpatialTable; 

从SentryOne SQL计划资源管理器

CONVERT_IMPLICIT(地理,[地理] :: STPolyFromText((N'POLYGON(( '+ [@ xPolygon])+ N'))”, (4326)),0)

enter image description here

同样这里也适用

DECLARE @xLongitude FLOAT = 53.835134 
DECLARE @xLatitude FLOAT = -2.474670 

IF OBJECT_ID('#xSpatialTable') IS NOT NULL 
    DROP TABLE #xSpatialTable; 
CREATE TABLE #xSpatialTable (
    id   INT IDENTITY (1,1) CONSTRAINT PK_xSpatialTable PRIMARY KEY 
    ,GeogCol1 GEOGRAPHY 
    ,GeogCol2 AS GeogCol1.STAsText() 
); 

INSERT INTO #xSpatialTable (GeogCol1) 
VALUES (GEOGRAPHY::STGeomFromText('POINT(' + CAST(@xLongitude AS NVARCHAR(20)) + ' ' + CAST(@xLatitude AS NVARCHAR(20)) + ')', 4326)); 

IF OBJECT_ID('#xSpatialTable') IS NOT NULL 
    DROP TABLE #xSpatialTable; 

从SentryOne SQL计划资源管理器

![enter image description here

有没有办法避免这些?

在此先感谢

+0

我没有得到你的发布代码'CONVERT_IMPLICIT'。你可以添加一些你看到这个的截图吗? – iamdave

+0

截图添加 –

+0

这就是我得到:http://i.imgur.com/DnxlGqa.png – iamdave

回答

0

与非临时表dbo.xSpatialTable摆脱了Convert_Implicit取代了临时表#xSpatialTable

相关问题