私だけでインストールされたSQL Serverの2016 SP1およびこのTSQLスクリプトを実行SQL 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
(テーブル内のレコードがありません)以下を実行します。これは、
にデータ型varchar型を変換するメッセージ8114、レベル16、状態5、8行 エラーを返します。数値。
それはLocation
分野に関連しています。これは、SQL Server 2016のバグ
ですか?私はこの動作が期待できません。次
はあなたが+
オペレータが代わりに追加の連結として扱われるので、varchar型にLNGと緯度の値をCAST
する必要があるすべての問題
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 –
で同じように失敗したので、なぜあなたは計算列としてこれを行うことを期待しますか? '[地理]を選択:: STGeomFromText(((( 'POINT(' 12)+ ' ')93)+')'、(4326))' - あなたはトリガーを使用して値を移入する必要がありますように思えます動的SQLを使用します。 –