用sql语句如何给字段添加和去掉identity属性

-- 在SQL SERVER的Enterprise Manage中,先建一个表
--
然后右击,选择Design Table,添加了Identity属性后,用Save Change Script按钮
--
看看系统是怎么做的,去掉Identity同理. 
--
假如建了表a,id有identity属性
--
----------------------------------------------
--
1.创建表
if   exists  ( select   *   from  dbo.sysobjects  where  id  =   object_id (N ' [dbo].[a] ' and   OBJECTPROPERTY (id, N ' IsUserTable ' =   1 )
drop   table   [ dbo ] . [ a ]
GO

CREATE   TABLE   [ dbo ] . [ a ]  (
    
[ id ]   [ int ]   NOT   NULL  ,
    
[ title ]   [ char ]  ( 10 ) COLLATE Chinese_PRC_CI_AS  NULL  
ON   [ PRIMARY ]
GO
-- 2.加identity属性
BEGIN   TRANSACTION
SET  QUOTED_IDENTIFIER  ON
SET   TRANSACTION   ISOLATION   LEVEL   SERIALIZABLE
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
CREATE   TABLE  dbo.Tmp_a
    (
    id 
int   NOT   NULL   IDENTITY  ( 1 1 ),
    title 
char ( 10 NULL
    )  
ON   [ PRIMARY ]
GO
SET   IDENTITY_INSERT  dbo.Tmp_a  ON
GO
IF   EXISTS ( SELECT   *   FROM  dbo.a)
     
EXEC ( ' INSERT INTO dbo.Tmp_a (id, title)
        SELECT id, title FROM dbo.a TABLOCKX
' )
GO
SET   IDENTITY_INSERT  dbo.Tmp_a  OFF
GO
DROP   TABLE  dbo.a
GO
EXECUTE  sp_rename N ' dbo.Tmp_a ' , N ' a ' ' OBJECT '
GO
ALTER   TABLE  dbo.a  ADD   CONSTRAINT
    PK_a 
PRIMARY   KEY   CLUSTERED  
    (
    id
    ) 
ON   [ PRIMARY ]

GO
COMMIT
-- 3.去掉identity属性
BEGIN   TRANSACTION
SET  QUOTED_IDENTIFIER  ON
SET   TRANSACTION   ISOLATION   LEVEL   SERIALIZABLE
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
CREATE   TABLE  dbo.Tmp_a
    (
    id 
int   NOT   NULL ,
    title 
char ( 10 NULL
    )  
ON   [ PRIMARY ]
GO
IF   EXISTS ( SELECT   *   FROM  dbo.a)
     
EXEC ( ' INSERT INTO dbo.Tmp_a (id, title)
        SELECT id, title FROM dbo.a TABLOCKX
' )
GO
DROP   TABLE  dbo.a
GO
EXECUTE  sp_rename N ' dbo.Tmp_a ' , N ' a ' ' OBJECT '
GO
ALTER   TABLE  dbo.a  ADD   CONSTRAINT
    PK_a 
PRIMARY   KEY   CLUSTERED  
    (
    id
    ) 
ON   [ PRIMARY ]

GO
COMMIT 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值