关于修改表结构的问题.
请教一个问题 在sqlserver中定义了一个自增列
现在我已经定义了一个主键,我想将自增的属性去掉呢?不能为自增列,因为分页时也用到自增列.所以想请教,怎样将自增列属性去掉.也就是将identity的去掉,变成只为 int的字段.不为自增列.
具体过程如下:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[up_Add_Primary_Key_On_ModifyTable_Emms]') and OBJECTPROPERTY(id,
N'IsProcedure') = 1)
drop procedure [dbo].[up_Add_Primary_Key_On_ModifyTable_Emms]
go
SET QUOTED_IDENTIFIER OFF
go
SET ANSI_NULLS on
go
----系统部分
CREATE PROCEDURE [dbo].[up_Add_Primary_Key_On_ModifyTable_Emms]
@strTableName nvarchar(50) -----'对应tImport_TempTableName表中的nTableID(最大值+1)
AS
set ANSI_Warnings on
begin
------------'定义变量部分
declare @strIdentity nvarchar(100)
--'自增变量的字段名
declare @strExecSql nvarchar(200)
--'动态执行的sql语句
--'删除自增列
select @strIdentity=[name] from syscolumns where [id] in (select [id]from sysobjects where [name]=@strTableName and autoval is not null)
set @strExecSql=' alter table '+@strTableName+ ' drop column '+@strIdentity
exec (@strExecSql)
--'增加自增列
set @strExecSql=' alter table '+@strTableName+' Add column_seq int identity CONSTRAINT column_seq_'+ltrim(rtrim(@strTableName))+'_pk '
set @strExecSql=@strExecSql+' PRIMARY KEY '
exec(@strExecSql)
--'将identity属性去掉,将设为主键
set @strExecSql=' alter table '+@strTableName+' ' ?
end