假设我有这样的SQL语句:
ALTER TABLE dbo.[tbl] ALTER COLUMN col1 varchar(300)
ALTER TABLE dbo.[tbl] ALTER COLUMN col2 varchar(20)
ALTER TABLE dbo.[tbl] ALTER COLUMN col3 varchar(20)
ALTER TABLE dbo.[tbl] ALTER COLUMN col4 varchar(100)我已经将这些语句放在一个文件中,以便一个接一个地运行。我也有一个关注dbo.tbl的视图。我注意到,在运行上面的4条语句后,视图保留了旧的列长度。因此,我将以下代码添加到文件的末尾:
ALTER VIEW [dbo].[tbl]
AS
SELECT col1, col2, col3, col4
FROM dbo.[tbl]我得到的错误是
'ALTER VIEW' must be the first statement in a query batch所以我的问题是,确保我的视图保留新列长度的最佳方法是什么?
发布于 2012-01-16 08:17:36
对于此特定用途,请使用sp_refreshview。
exec sp_refreshview N'dbo.tbl'发布于 2012-01-16 08:10:50
使用GO语句:
ALTER TABLE dbo.[tbl] ALTER COLUMN col1 varchar(300)
ALTER TABLE dbo.[tbl] ALTER COLUMN col2 varchar(20)
ALTER TABLE dbo.[tbl] ALTER COLUMN col3 varchar(20)
ALTER TABLE dbo.[tbl] ALTER COLUMN col4 varchar(100)
GO
ALTER VIEW [dbo].[tbl]
AS
SELECT col1, col2, col3, col4
FROM dbo.[tbl]
GOhttps://stackoverflow.com/questions/8874533
复制相似问题