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 */
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,再在企业管理器里面更改一下,就能跟踪到语句了
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
*/
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,再在企业管理器里面更改一下,就能跟踪到语句了
否则的话还是identity列比较方便啊...
--表中最大的id+1
select max(id)+1 from tb