如果我创建一个像
create table test2 (foo geometry)
foo 将按预期显示在表格设计器中
但是当我查询sys.columns
列信息时...
select
t.name as TABLE_NAME,
c.name as COLUMN_NAME,
c.precision as PRECISION,
c.scale as SCALE,
c.max_length as MAX_LENGTH,
c.is_nullable as IS_NULLABLE,
ty.name as DATA_TYPE
FROM sys.columns c
JOIN sys.tables t ON c.object_id = t.object_id
JOIN sys.types ty on c.system_type_id = ty.system_type_id and ty.NAME != 'sysname'
ORDER BY c.column_id
...我还得到了一列类型hiearchyid
和geography
(使用相同的列名)。
为什么?
我可以更改我的sys.columns
查询以过滤掉那些伪列吗?
(我正在使用该查询来重新创建create table
查询)。
请改用此查询:
连接基于user_type_id,因此结果与 GUI 相同。