我在一个自动同步项目中工作,我想从SQL Server 2008 R2上的视图中获取数据类型,并将其与同一数据库中的表进行比较。我熟悉系统列,但是,这似乎只适用于表,而不是视图。任何建议或参考将不胜感激。
本质上,如果View_A有一个新的列添加到它,我需要添加列到Table_A与View_A相同的属性,以便所有的数据类型,长度,和字段在Table_A总是与View_A相同。
谢谢
我不确定syscolumns是否只显示基表的列,但是您可以使用这个查询:
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'YourView'
sys.columns
包含视图的列信息:
CREATE VIEW dbo.Test_View
AS
SELECT * FROM sys.objects
SELECT *
FROM sys.columns
WHERE object_id = OBJECT_ID('dbo.Test_View')
sys.columns
中的列用于视图和表。
所以,你应该能够做同样的表,即
SELECT *
FROM sys.columns
WHERE object_id = OBJECT_ID('MyViewName')