谁能告诉我为什么Sysobjects表有两个列xtype和type。两者的数据类型都是char(2),并且都存储对象类型。
发布于 2010-11-30 18:31:21
我认为应该使用type,因为它仍然处于新的视图中。xtype是为了向后兼容而存在的。
注意:
看起来sys.sysobjects将是removed in future versions,您应该改用sys.objects。
发布于 2010-11-30 19:48:19
您可以查看sysobjects的定义
select OBJECT_DEFINITION(OBJECT_ID('sysobjects'))
AS [processing-instruction(x)] FOR XML PATH('') 这给了我们
CREATE VIEW sys.sysobjects AS
SELECT
/*... Snip ...*/
xtype = type collate database_default,
/*... Snip ...*/
type = convert(char(2), case type
when 'UQ' then 'K' when 'PK' then 'K'
else type collate database_default end),
/*... Snip ...*/
FROM sys.sysschobjs因此,它们的区别似乎只在于UQ和PK,或者是否显示为K。
https://stackoverflow.com/questions/4312634
复制相似问题