将表中字段转换,并保留原值

发表于:2007-06-22来源:作者:点击数: 标签:
下一页 1 2 /*--将表中的某个字段转换成标识字段,并保留原来的值 注意,因为要删除原表,所以,如果表和其他表的关联,这些关联要重新创建 --邹建 2003.12--*/ /*--调用示例 exec p_setid '表名','要转换的字段名' --*/ if exists (select * from dbo.sysobjects

下一页 1 2 

   

  /*--将表中的某个字段转换成标识字段,并保留原来的值

  注意,因为要删除原表,所以,如果表和其他表的关联,这些关联要重新创建

  --邹建 2003.12--*/

  /*--调用示例

  exec p_setid '表名','要转换的字段名'
  --*/


  if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_setid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  drop procedure [dbo].[p_setid]
  GO

  CREATE PROC P_SETID
  @tbname sysname, --要处理的表名
  @fdname sysname --要转换为标识字段的字段名
  as
  declare @s1 varchar(8000),@s2 varchar(8000),@tmptb sysname
  select @s1='',@s2='',@tmptb='[tmp_'+@tbname+'_bak]'
  select @s1=@s1+',['+name+']'
  +case name when @fdname then '=identity(bigint,1,1)' else '' end
,@s2=@s2+',['+name+']'
  from syscolumns where object_id(@tbname)=id

原文转自:http://www.ltesting.net