我想插入到一个表中,但是我使用的工具不支持该数据类型。具体来说,我想使用Azure数据工厂将geometry
数据类型插入到Microsoft SQL Server表中。
是否有一种方法来执行这种插入,例如,使用WKT字符串'POINT(100 100)'
,并在SQL Server中自动将其转换为几何数据类型?我可以通过视图或某种存储过程或触发器做到这一点吗?
我可以用一个视图和一个触发器实现我想要的:
create table [phil].[test_geo]
( [uid] NUMERIC(12,0),
[coords] geometry
)
create view [phil].[test_geo_string] as
select [uid], [coords].STAsText()
from [phil].[test_geo]
create trigger [INSTEADOF_TR_I_test_geo_string]
ON [phil].[test_geo_string]
INSTEAD OF INSERT AS
BEGIN
INSERT INTO [phil].[test_geo] ( [uid], [coords] )
SELECT I.[uid], geometry::STGeomFromText(I.[coords_string], 27700)
FROM INSERTED I
END
为任何拼写错误道歉,因为我正在处理气隙。