sql server语言 - transaction sql - View数据类型同步问题



我在一个自动同步项目中工作,我想从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')

最新更新