码迷,mamicode.com
首页 > 其他好文 > 详细

阻止保存要求重新创建表的更改

时间:2014-12-09 12:29:33      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:sql 表 设计

  在设计“表”的时候,遇到修改数据类型的场景。可是,当我们把数据类型修改之后,点击“保存”按键,却遇到报错:不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的表进行了更改或者启用了”阻止保存要求重新创建表的更改“选项”。

bubuko.com,布布扣


  为了简化操作,可以去除“阻止保存要求重新创建表的更改”选项。

bubuko.com,布布扣


  实际上,SQL Server在后台生成了一系列的脚本重建了这张表。

bubuko.com,布布扣


/* 为了防止任何可能出现的数据丢失问题,您应该先仔细检查此脚本,然后再在数据库设计器的上下文之外运行此脚本。*/

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

阻止保存要求重新创建表的更改

标签:sql 表 设计

原文地址:http://jimshu.blog.51cto.com/3171847/1587792

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!