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
  • 相关阅读:
    linux top详解
    软件人才必须具备的素质
    合格程序员每天每周每月每年应该做的事
    正则匹配任意字符(包括换行)
    软件测试方案
    LInux进程间的通信方式有哪儿些?
    三网融合
    php路径问题
    xp 安装SATA AHCI驱动
    进程与线程的区别
  • 原文地址:https://www.cnblogs.com/lhlong/p/6825786.html
Copyright © 2011-2022 走看看