我可以通过视图插入并转换数据类型吗?
Can I insert via a view, and convert data types?
我想插入一个table,但是我使用的工具不支持该数据类型。具体来说,我想使用 Azure 数据工厂将 geometry
数据类型插入 Microsoft SQL 服务器 table。
有没有办法使用 'POINT(100 100)'
之类的 WKT 字符串执行此插入,并在 SQL 服务器内自动将其转换为几何数据类型?我可以通过视图或某种存储过程或触发器来做到这一点吗?
我可以通过视图和触发器实现我想要的:
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
对于任何打字错误,我深表歉意,因为我正在处理气隙问题。
我想插入一个table,但是我使用的工具不支持该数据类型。具体来说,我想使用 Azure 数据工厂将 geometry
数据类型插入 Microsoft SQL 服务器 table。
有没有办法使用 'POINT(100 100)'
之类的 WKT 字符串执行此插入,并在 SQL 服务器内自动将其转换为几何数据类型?我可以通过视图或某种存储过程或触发器来做到这一点吗?
我可以通过视图和触发器实现我想要的:
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
对于任何打字错误,我深表歉意,因为我正在处理气隙问题。