ich nur SQL Server installiert 2016 und SP1 und führen Sie dieses T-SQL-SkriptSQL Server 2016 SP1 - Ist das ein Fehler?
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
)
Der Tisch ist in Ordnung geschaffen.
ich dann laufen die folgenden (es gibt keine Datensätze in der Tabelle ist)
Select * from TEST
Das gibt
Msg 8114, Ebene 16, Status 5, Zeile 8 Fehler beim Konvertieren Datentyp varchar numerisch.
Es ist mit dem Feld Location
verwandt.
Ist dies ein Fehler in SQL Server 2016? Ich würde dieses Verhalten nicht erwarten.
Die folgende etwaige Probleme nicht
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
Es schlägt auch das gleiche auf SQL-Server 2014 –
Sie können dies nicht tun, also warum sollten Sie dies als eine berechnete Spalte tun? 'SELECT [geography] :: STGeomFromText ((('POINT (' +12) + '') +93) + ')', (4326))' - scheint, als müssten Sie die Werte mit einem Trigger auffüllen mit dynamischem SQL. –