• 将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
  • 相关阅读:
    web十二讲,CSS样式
    web第十一讲,div与span
    web第十讲,CSS基础
    git 版本回退后再恢复
    git 变更远程仓库及在本地的别名
    使用FastClick插件,无法监听双击事件
    声明式编程的没落
    gradle 很棒
    评 PowerShell
    VB 的一些歧义(不断更新)
  • 原文地址:https://www.cnblogs.com/lhlong/p/6825786.html
Copyright © 2020-2023  润新知