먼저 'geography'유형의 열을 포함하는 Placemarks
테이블을 작성했습니다.'geography'유형의 각 열에 대한 syscolumns의 다중 항목
CREATE TABLE [dbo].[Placemarks](
[ID] [int] NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[Location] [geography] NOT NULL,
CONSTRAINT [PK_Placemarks]
PRIMARY KEY CLUSTERED([ID] ASC)
)
그런 다음, 나는 데이터 유형과 테이블의 모든 열 목록을 얻을 수있는 저장 프로 시저에 다음 쿼리를 사용합니다.
SELECT
b.name, c.name as TypeName, b.length, b.isnullable, b.collation, b.xprec, b.xscale
FROM sysobjects a
inner join syscolumns b on a.id = b.id
inner join systypes c on b.xtype = c.xtype and c.name <> 'sysname'
WHERE a.id = object_id(N'[dbo].[Placemarks]')
and OBJECTPROPERTY(a.id, N'IsUserTable') = 1
ORDER BY b.colId
쿼리의 결과는 여기에서 볼 수 있습니다 : 내가 저장 프로 시저에서이 쿼리를 사용하여 내 Placemarks
테이블의 각 열에 대한 하나의 행을 얻을 필요하고
. TypeName = geometry 또는 hierarchyid로 행을 필터링 할 수 있습니다.
하지만 앞으로는 기하학 데이터 형식을 사용할 수 있으며 쿼리가 앞으로 호환되도록 할 수 있습니다. 다른 아이디어?