首页 > 代码库 > 阻止保存要求重新创建表的更改
阻止保存要求重新创建表的更改
在设计“表”的时候,遇到修改数据类型的场景。可是,当我们把数据类型修改之后,点击“保存”按键,却遇到报错:不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的表进行了更改或者启用了”阻止保存要求重新创建表的更改“选项”。
为了简化操作,可以去除“阻止保存要求重新创建表的更改”选项。
实际上,SQL Server在后台生成了一系列的脚本重建了这张表。
/* 为了防止任何可能出现的数据丢失问题,您应该先仔细检查此脚本,然后再在数据库设计器的上下文之外运行此脚本。*/ BEGIN TRANSACTION SET QUOTED_IDENTIFIER ON SET ARITHABORT ON SET NUMERIC_ROUNDABORT OFF SET CONCAT_NULL_YIELDS_NULL ON SET ANSI_NULLS ON SET ANSI_PADDING ON SET ANSI_WARNINGS ON COMMIT BEGIN TRANSACTION GO CREATE TABLE dbo.Tmp_UserTable ( UserID varchar(50) NOT NULL, UserName nvarchar(10) NOT NULL, AddressLine1 nvarchar(50) NULL, AddressLine2 nvarchar(50) NULL ) ON [PRIMARY] GO ALTER TABLE dbo.Tmp_UserTable SET (LOCK_ESCALATION = TABLE) GO IF EXISTS(SELECT * FROM dbo.UserTable) EXEC(‘INSERT INTO dbo.Tmp_UserTable (UserID, UserName, AddressLine1, AddressLine2) SELECT CONVERT(varchar(50), UserID), UserName, AddressLine1, AddressLine2 FROM dbo.UserTable WITH (HOLDLOCK TABLOCKX)‘) GO DROP TABLE dbo.UserTable GO EXECUTE sp_rename N‘dbo.Tmp_UserTable‘, N‘UserTable‘, ‘OBJECT‘ GO ALTER TABLE dbo.UserTable ADD CONSTRAINT PK_UserTable PRIMARY KEY CLUSTERED ( UserID ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] GO COMMIT |
本文出自 “我们一起追过的MSSQL” 博客,请务必保留此出处http://jimshu.blog.51cto.com/3171847/1587792
阻止保存要求重新创建表的更改