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
  • 相关阅读:
    看懂SqlServer查询计划
    Android开发16——获取网络资源之基础应用
    Android开发15——给TextView加上滚动条
    PeekMessage、GetMessage的区别
    获取不到Repeater控件中的CheckBox选中状态
    第十九讲:动态链接库
    孙鑫VC++视频教程笔记
    CEdit 控制键盘操作
    网络编程中粘包的处理方法
    VC++编程之道读书笔记(2)
  • 原文地址:https://www.cnblogs.com/lhlong/p/6825786.html
Copyright © 2011-2022 走看看