创建一个表的时候,存在字段id,若不将它设为标识和自增,怎样在程序中调用存储过程实现?  谢谢回答!

解决方案 »

  1.   

    http://blog.csdn.net/roy_88/article/details/1424370
      

  2.   

    use Tempdb
    go
    create table T(ID int primary key,Name sysname)
    go
    create procedure P1(@Name sysname)
    as
    declare @ID int
    select @ID=isnull(max(ID)+1,1) from T
    insert T values(@ID,@Name)
    go
    exec P1 @Name='a'
    exec P1 @Name='b'
    go
    select * from T
    /*
    ID Name
    1 a
    2 b
    */
      

  3.   


    select identity(int,1,1) as id2,* into tb2 from tb1drop table tb1  ---删除旧表
    exec sp_rename 'tb2','tb1'  ---修改旧表的名称为新表
    alter table tb1 drop column id  ---删除就得标志列exec sp_rename 'tb2.id2','id','column'----将新的标志列的名称修改成id
    要知道怎么做,只要开启profile,再在企业管理器里面更改一下,就能跟踪到语句了
      

  4.   

    如果业务规则要求id字段必须是连续的流水或者满足别的什么混蛋的逻辑,可以在存储过程搞
    否则的话还是identity列比较方便啊...
      

  5.   


    --表中最大的id+1
    select max(id)+1 from tb