MSSQL同步刷新视图字段长度和源表保持一致

1 我们先创建一个表和一个视图,我用mssql

创建表

USE [tmpe]
GO

/****** Object:  Table [dbo].[user]    Script Date: 09/29/2017 09:43:14 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[user](
	[id] [int] NULL,
	[name] [varchar](500) NULL,
	[sex] [int] NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

 创建视图

USE [tmpe]
GO

/****** Object:  View [dbo].[View_user]    Script Date: 09/29/2017 09:44:40 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE VIEW [dbo].[View_user]
AS
SELECT     dbo.[user].*
FROM         dbo.[user]

GO

  创建好的表和视图如下:

2 ,接下来我们把user表的name 长度改为1000的时候,刷新视图 查看视图里的name的长度依旧为没有修改之前的500

 你可以説我把视图删了重建可以不啊,可以的,但是当你的视图有很多的时候你怎么去改

微软为我们提供了一个很好的解决方法,执行下就好了

exec sp_refreshview 'dbo.View_user'

  执行后再看;

原文地址:https://www.cnblogs.com/felicitytanyin/p/7609650.html