`
javayestome
  • 浏览: 1046625 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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

Go 
阅读更多

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

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

--邹建 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
select @s1=substring(@s1,2,8000),@s2=substring(@s2,2,8000)
exec('select top 0 '+@s1+' into '+@tmptb+' from ['+@tbname+']
set identity_insert '+@tmptb+' on
insert into '+@tmptb+'('+@s2+') select '+@s2+' from ['+@tbname+']
set identity_insert '+@tmptb+' off
')
exec('drop table ['+@tbname+']')
exec sp_rename @tmptb,@tbname
go

/*==========================================================*/

--使用测试

--创建测试的表
create table 表(编号 bigint,姓名 varchar(10))
insert into 表
select 1,'张三'
union all select 2,'李四'
union all select 4,'王五'
go

--调用存储过程,将编号字段改为标识字段
exec p_setid '表','编号'
go

--显示处理结果
select * from 表

--显示是否修改成功
select name from syscolumns
where object_id('表')=id and status=0x80
go

--删除测试
drop table 表

分享到:
评论

相关推荐

    泛微E9流程修改字段高亮显示

    当用户修改某个字段后,相应的标识字段会被设置为特定值,表示该字段已被修改。 2. **技术实现**: - 在数据库中为每个需要高亮显示的字段增加一个标志位,通常可以是布尔类型。 - 当用户提交修改后,通过ECODE...

    kettle常见控件(输入、输出,字段选择、设置变量、记录集连接、值映射、字符串替换、js、Java)的使用案例

    - **映射输入/映射输出**:用于数据转换,比如将特定值映射为其他值,或者根据条件进行分类。 7. 字符串替换: - **文本文件输出**:在处理文本数据时,可以使用“字符串替换”步骤对字段内容进行替换,以满足...

    《ETL数据整合与处理(Kettle)》教学教案 —04字段处理.pdf

    - **拆分字段**:用于将一个字段的值分解成多个字段,适用于有规律的字符串拆分。 - **数值范围**:定义数值的上下限,可以用于过滤或转换数据。 - **计算器**:执行数学运算,可以创建新字段或更新现有字段的值...

    对象字段变化比较工具

    1. **对象序列化与反序列化**:为了比较两个对象,工具可能需要先将它们转换成一致的数据格式,如JSON字符串,然后再进行比较。这样可以忽略掉对象的实例标识(内存地址)差异,专注于字段值的对比。 2. **递归比较...

    把扁平化的数据转换成树形结构的JSON

    在IT行业中,数据的组织和...总之,将扁平化的数据转换成树形结构是JavaScript开发中的常见任务,尤其在处理JSON数据时。通过理解数据结构和递归算法,我们可以有效地完成这个转换,从而更好地管理和操作层次化数据。

    实体类转换成数据库表

    在IT行业中,实体类到数据库表的转换是一个常见的任务,特别是在使用对象关系映射(ORM)框架如Hibernate时。这个过程允许开发人员将程序中的对象模型与数据库的结构进行同步,简化了数据操作。以下是对标题和描述中...

    PowerDesigner数据库模型表内容大小写转换

    PowerDesigner数据库模型表内容大小写转换,可对表名称、字段名称、字段类型标识字符、主外键依赖等字符串进行大小写转换操作

    arcgis工具

    如果搜索不需要区分大小写,可以使用SQL函数将所有的值都转换成大写或者小写。对于基于文件的数据源,例如shape文件或coverages,既可以使用UPPER函数,也可以使用LOWER函数。 例如下面这个查询将选出那些姓名的...

    由特定数据库表格式(3个字段)生成TreeView树型

    在IT领域,尤其是在Windows应用程序开发中,...总的来说,这个项目是将数据库中的层次数据转换为可视化界面,提供给用户直观的操作体验。在Delphi中,这通常涉及到数据库访问、对象的创建和事件处理等多个方面的知识。

    sql server 中合并某个字段值的实例

    本文将深入探讨如何在SQL Server中合并特定字段的值,并提供一个具体的实例来演示这一过程。 首先,假设我们有一个名为`body`的表,结构如下: ```sql CREATE TABLE body ( ID int, BODY nvarchar(20) ) ``` 表...

    将字符串转换成日期

    C++标准库中并没有直接提供从`time_t`到`CTime`的构造函数,但可以通过`localtime`或`gmtime`函数将`time_t`转换为`tm`结构体,然后使用`CTime`的构造函数创建对象。 示例代码如下: ```cpp #include #include ...

    DBF文件头及字段模板

    同时,许多现代数据库系统支持将DBF文件转换为更现代的格式,如CSV或SQL数据库。 总的来说,理解DBF文件头和字段模板是处理这类文件的基础,这对于数据迁移、数据分析或软件开发等工作都至关重要。通过熟练掌握这些...

    提取字段别名

    在GIS数据管理中,字段别名是指为了方便用户阅读或理解而为字段设置的一个可读性强的名字,它与字段名称不同,字段名称是系统内部用来唯一标识该字段的名称,而字段别名则更偏向于用户友好型展示。例如,在一个包含...

    groovy将表单多个字段复制到一个字段内.rar

    本示例中,我们需要将多个字段的值合并到一个单一字段,这涉及到数据的提取、组合和可能的格式化。 3. **自定义拼装**: 自定义拼装是指根据业务需求定制数据组合的方式。例如,可能需要将用户的名字和姓氏字段...

    VFP通用字段中的信息导入SQL Server的实现方法.pdf

    但是,这会导致一个问题,即迁移到SQL Server后,原本存储在通用字段中的数据无法被正确读取,因为VFP并没有提供直接将通用字段数据转换为SQL Server所识别格式的物理文件的命令。这就是文章所要解决的核心问题。 ...

    在VFP中将通用字段值与WORD文档进行数据交换的实现方法

    2. **从数据库导出Word文档**:当需要将试题从数据库中提取出来进行编辑时,可以通过打开通用字段中的OLE对象实现。 3. **编辑和更新**:用户可以在Word中自由编辑试题,完成后再次将文档嵌入到数据库中的相应字段。...

    matlab开发-结构字段diffs12verboses1strs2str

    `verboses1`和`strs2str`可能是控制输出的附加参数,`verboses1`可能用于指定是否显示详细的比较信息,而`strs2str`可能是将结构体字段转换为字符串的标志,这样可以方便地进行比较和输出。 在MATLAB中,比较结构体...

    Go-autoflags-Go包用于自动从结构体字段自动定义命令行标志

    这样,当程序运行时,库会自动解析命令行参数,并将它们赋值给相应的结构体字段,使得程序可以直接使用这些字段获取用户输入。 使用`Go-autoflags`的步骤如下: 1. 定义一个结构体,该结构体的字段代表命令行参数...

Global site tag (gtag.js) - Google Analytics