Сначала я создал таблицу с именем Placemarks
, содержащую столбец типа 'география'.
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 илиierarchyid.
Но я могу использовать тип данных геометрии в будущем и хочу, чтобы запрос был совместимым с прямым запросом.Есть еще идеи?