我剛剛安裝了SQL Server 2016和SP1並運行此腳本TSQLSQL Server 2016 SP1 - 這是一個錯誤嗎?
CREATE TABLE [dbo].TEST(
[id] [INT] IDENTITY(1,1) NOT NULL,
[lat] [DECIMAL](9, 6) NULL,
[lng] [DECIMAL](9, 6) NULL,
[Location] AS ([geography]::STGeomFromText(((('POINT ('+[lng])+' ')+[lat])+')',(4326)))
PERSISTED
)
創建表的罰款。
我然後運行以下(有在表中沒有記錄)
Select * from TEST
這返回
消息8114,級別16,狀態5,第8行 誤差變換數據類型爲varchar到數字。
它與Location
字段有關。
這是SQL Server 2016中的錯誤嗎?我不希望這種行爲。
下不會引起任何問題
CREATE TABLE [dbo].TEST2(
[id] [INT] IDENTITY(1,1) NOT NULL,
[lat] [DECIMAL](9, 6) NULL,
[lng] [DECIMAL](9, 6) NULL,
[Location] AS [lng] PERSISTED
)
select * from TEST2
它在SQL-Server 2014上也失敗了 –
你不能這樣做,那麼你爲什麼希望將它作爲一個計算列? 'SELECT [geography] :: STGeomFromText(((('POINT('+12)+'')+93)+')',(4326))' - 好像你需要用觸發器填充值與動態SQL。 –