zoukankan      html  css  js  c++  java
  • 将sql Server 的table的列 ,由非自增长改为自增长

    转载:http://www.thinksaas.cn/topics/0/423/423869.html

    Demo

    /**************** 准备环境********************/
    
    --判断是否存在test表
    if object_id(N'test',N'U') is not null
    drop table test
    
    --创建test表
    create table test
    (
    id int not null,
    name varchar(20) not null
    )
    
    --插入临时数据
    insert into test values (1,'成龙')
    insert into test values (3,'章子怡')
    insert into test values (4,'刘若英')
    insert into test values (8,'王菲')
    
    select * from test
    
    
    
    /**************** 实现更改自动增长列********************/
    
    begin transaction
    
    create table test_tmp
    (
    id int not null identity(1,1),
    name varchar(20) not null
    )
    go
    
    set identity_insert test_tmp on
    go
    
    if exists(select * from test)
    exec(' insert into test_tmp(id, name ) select id, name from test with(holdlock tablockx)')
    go
    
    set identity_insert test_tmp off
    go
    
    drop table test
    go
    
    exec sp_rename N'test_tmp' ,N'test' , 'OBJECT'
    go
    
    commit
    
    GO
    
    /****************验证结果*****************/
    insert into test values ('张曼')
    select * from test

    实例:

    /**************** 实现更改自动增长列********************/
    
    begin transaction
    
    create table test_tmp
    (
    UserGradeID int not null identity(1,1),
    UserGrade nvarchar(8) not null,
    [Status] int not null,
    Remark nvarchar(128) ,
    adduser nvarchar(32) ,
    upduser nvarchar(32) ,
    addtime datetime2(7) ,
    updtime datetime2(7)  
    )
    go
    
    set identity_insert test_tmp on
    go
    
    if exists(select * from m_usergrade)
    
    
    exec(' insert into test_tmp(UserGradeID,UserGrade,[Status],Remark,adduser,upduser,addtime,updtime ) 
    select UserGradeID,UserGrade,[Status],Remark,adduser,upduser,addtime,updtime from m_usergrade with(holdlock tablockx)')
    go
    
    set identity_insert test_tmp off
    go
    
    drop table m_usergrade
    go
    
    exec sp_rename N'test_tmp' ,N'm_usergrade' , 'OBJECT'
    go
    
    commit
    
    GO
  • 相关阅读:
    bzoj2002: [Hnoi2010]Bounce 弹飞绵羊 [分块][LCT]
    luoguP1886 滑动窗口 [单调队列]
    bzoj1047: [HAOI2007]理想的正方形
    bzoj1012: [JSOI2008]最大数maxnumber [单调队列]
    树与二叉树之二--二叉树的性质与存储
    树与二叉树之一--基本概念与存储结构
    Markdown段首空格
    C++ atan2
    凸包学习笔记
    Codeforces Round #545 (Div. 1) E. Train Car Selection
  • 原文地址:https://www.cnblogs.com/lhlong/p/6825786.html
Copyright © 2011-2022 走看看