SQL Server修改标识列方法 如自增列的批量化修改

通过界面设计上是能手工操作的,无法达到我批量修改几千台服务器。
因为此了一个脚本来批量执行。
环境:redgate + mssql 2008 r2
以下代码根据自己的业务稍做修改即使用。


代码如下:

--允许对系统表进行更新
exec sp_configure 'allow updates',1
reconfigure with override
GO
--取消标识列标记
update syscolumns set colstat = 0 where id = object_id('tablename') and colstat = 1
GO
--插入id=8001-8003的行
--恢复标识列标记
update syscolumns set colstat = 1 where id = object_id('tablename') and name = '标识列名称'
--重新设置标识的起始值
DBCC CHECKIDENT (表名称, RESEED, 10003)
--禁止对系统表进行更新
exec sp_configure 'allow updates',0
reconfigure with override

还有很多批量操作的知识,
如批量检查索引是否准确
字段的长度是否一致
作业是否运行结果一致
服务是否同时启动
……
都需要批量来处理。
可参考我其他的文章获取其他批量操作的方法。

(0)

相关推荐

  • sqlserver2005自动创建数据表和自动添加某个字段索引

    创建数据表的SQL语句如下: string tatlename = "T_useruid";//定义一个变量.用于自动创建数据表的名称,当前表名为:T_useruid string sql = "CREATE TABLE [dbo].[" + tatlename + "]([Cid] [int] IDENTITY(1,1) NOT NULL,[Uid] [nchar](32) COLLATE Chinese_PRC_CI_AS NULL,CONSTRAIN

  • SQL Server 2008怎样添加自增列实现自增序号

    在做<机房收费系统>的时候,有的表需要添加自增列,在添加新纪录时自动添加一个序号.下面我给大家介绍两种添加方法: 一.通过T-SQL代码. 复制代码 代码如下: alter table 表名 add 列名 int IDENTITY(1,1) NOT NULL 这里用到了identity关键字:indentity(a,b),a b均为正整数,a表示开始数,b表示步长,indentity(1,1)就代表从1开始,每次增加1 二.通过企业管理器 打开对象资源管理器,新建表,如下图  插入列,设置列属

  • SqlServer Mysql数据库修改自增列的值及相应问题的解决方案

    SQL Server 平台修改自增列值 由于之前处理过sql server数据库的迁移工作,尝试过其自增列值的变更,但是通过SQL 语句修改自增列值,是严格不允许的,直接报错(无法更新标识列 '自增列名称').sql server我测试是2008.2012和2014,都不允许变更自增列值,我相信SQL Server 2005+的环境均不允许变更字段列值. 如果非要在SQL Server 平台修改自增列值的,那就手动需要自增列属性,然后修改该列值,修改成功后再手动添加自增列属性.如果在生成环境修改

  • Oracle 实现类似SQL Server中自增字段的一个办法

    相关代码如下: 1. 创建sequence: 复制代码 代码如下: CREATE SEQUENCE SEQU_DATA_DATAINFO INCREMENT BY 1 START WITH 1 NOCYCLE NOCACHE NOORDER; 2. 创建触发器: 复制代码 代码如下: create or replace TRIGGER TRIG_TEST BEFORE INSERT ON TABLE1 FOR EACH ROW DECLARE tmpVar NUMBER; BEGIN tmpVa

  • SQL Server 中调整自增字段的当前初始值

    前几天在把一个Communtiy Server 的数据库从SQL 2000升级到SQL 2005 的时候,碰到一个怪异的问题,报如下错误: Violation of PRIMARY KEY constraint 'PK_cs_Threads'. Cannot insert duplicate key in object 'dbo.cs_Threads'. 分析进去后,竟然发现这个表的自增字段数据库中已经达到了6144,而数据库维护的这个表的初始自增值只到6109. 解决方法很简单,利用以下SQL

  • SQL Server设置主键自增长列(使用sql语句实现)

    1.新建一数据表,里面有字段id,将id设为为主键 复制代码 代码如下: create table tb(id int,constraint pkid primary key (id)) create table tb(id int primary key ) 2.新建一数据表,里面有字段id,将id设为主键且自动编号 复制代码 代码如下: create table tb(id int identity(1,1),constraint pkid primary key (id)) create

  • SQL SERVER 自增列

    declare @Table_name varchar(60) set @Table_name = ''; if Exists(Select top 1 1 from sysobjects           Where objectproperty(id, 'TableHasIdentity') = 1             and upper(name) = upper(@Table_name)         )     select 1else select 0 -- or if Ex

  • SQL Server 打开或关闭自增长

    在往数据库表中添加一行的时候,要针对自增列插入一个特定值的时候,这个函数就很有用了,比如表结构如: id |  text 1  |    a 2  |    b 4  |   d 其中id列是自曾列,如果我们要插入3  |  c的话,如果没有打开自增列,肯定是插不进去的,这时候用这个函数就有作用了 复制代码 代码如下: SET IDENTITY_INSERT [Recursive] ON   INSERT INTO [Recursive](id,text) VALUES(3,'c')   SET

  • SQL Server数据表字段自定义自增数据格式的方法

    本文实例讲述了SQL Server数据表字段自定义自增数据格式的方法.分享给大家供大家参考,具体如下: --修改数据表SYS_Company中字段CompanyId自定义自增约束 ALTER TABLE [dbo].[SYS_Company] Add Constraint DF_SYS_Company_CompanyId DEFAULT ([dbo].[f_PrimaryCode_SYS_Company]()) FOR [CompanyId] --Go --删除约束 Alter table SY

  • SQL Server修改标识列方法 如自增列的批量化修改

    通过界面设计上是能手工操作的,无法达到我批量修改几千台服务器. 因为此了一个脚本来批量执行. 环境:redgate + mssql 2008 r2 以下代码根据自己的业务稍做修改即使用. 复制代码 代码如下: --允许对系统表进行更新 exec sp_configure 'allow updates',1 reconfigure with override GO --取消标识列标记 update syscolumns set colstat = 0 where id = object_id('t

  • C#访问SQL Server数据库的实现方法

    本文实例讲述了C#访问SQL Server数据库的实现方法.分享给大家供大家参考.具体如下: 这里介绍一下用C#访问SQL Server数据库.这里要涉及到几个类:SqlConnection类.SqlCommand类.SqlDataReader类. SqlConnection类用于建立与数据库的连接,SqlCommand类用于创建SQL命令,SqlDataReader对象是执行SqlCommand对象返回结果集的查询语句后的结果. 下面是部分代码: /*其中server表示服务器,"."

  • C#实现Excel表数据导入Sql Server数据库中的方法

    本文实例讲述了C#实现Excel表数据导入Sql Server数据库中的方法.分享给大家供大家参考,具体如下: Excel表数据导入Sql Server数据库的方法很多,这里只是介绍了其中一种: 1.首先,我们要先在test数据库中新建一个my_test表,该表具有三个字段tid int类型, tname nvarchar类型, tt nvarchar类型 (注意:my_test表中的数据类型必须与Excel中相应字段的类型一致) 2. 我们用SELECT * FROM  OPENROWSET(

  • 五种SQL Server分页存储过程的方法及性能比较

    在SQL Server数据库操作中,我们常常会用到存储过程对实现对查询的数据的分页处理,以方便浏览者的浏览.本文我们总结了五种SQL Server分页存储过程的方法,并对其性能进行了比较,接下来就让我们来一起了解一下这一过程. 创建数据库data_Test : create database data_Test GO use data_Test GO create table tb_TestTable --创建表 ( id int identity(1,1) primary key, userN

  • 彻底删除SQL Server注册表的方法

    一般在卸载完数据库时,大家都希望能够将注册表信息完全删干净,下面就将教您彻底删除SQL Server注册表的方法,供您参考. 在卸载SQL Server开始--运行:输入regedit 进入注册表编辑器,进入之后执行下列操作: 1.彻底删除SQL Server: hkey_local_machine\software\Microsoft\MSSQLServer hkey_local_machine\software\Microsoft\Microsoft SQL Server hkey_curr

  • SQL Server 常用函数使用方法小结

    之前就想要把一些 SQL 的常用函数记录下来,不过一直没有实行...嘿嘿... 直到今天用到substring()这个函数,C# 里面这个方法起始值是 0,而 SQL 里面起始值是 1.傻傻分不清楚... 这篇博客作为记录 SQL 的函数的使用方法,想到哪里用到哪里就写到哪里... SubString():用于截取指定字符串的方法.该方法有三个参数: 参数1:用于指定要操作的字符串. 参数2:用于指定要截取的字符串的起始位置,起始值为 1 . 参数3:用于指定要截取的长度. select sub

  • php使用sql server验证连接数据库的方法

    本文实例讲述了php使用sql server验证连接数据库的方法.分享给大家供大家参考.具体分析如下: 当您连接到 SQL Server 时,SQL Server Driver for PHP 支持 SQL Server 身份验证,在使用 SQL Server 身份验证连接到 SQL Server 时必须考虑以下几点. 必须对服务器启用 SQL Server 混合模式身份验证,在尝试建立连接时必须设置 UID 和 PWD 连接属性,UID 和 PWD 必须映射到有效的 SQL Server 用户

  • C#获取所有SQL Server数据库名称的方法

    本文实例讲述了C#获取所有SQL Server数据库名称的方法.分享给大家供大家参考.具体如下: 连接到master库中,执行 select name from master..sysdatabases . sp_helpdb也可以列出数据名,但不是全部,sp_helpdb是会根据当前用户角色找出相应的数据库,而用sysdatabases表则只要有权限访问该表就能查出所有数据库信息. 默认情况下,sqlserver提供的6个数据库中,除了model数据库外,其他若干个数据库还可能拥有guest用

  • C#将图片存放到SQL SERVER数据库中的方法

    本文实例讲述了C#将图片存放到SQL SERVER数据库中的方法.分享给大家供大家参考.具体如下: 第一步: //获取当前选择的图片 this.pictureBox1.Image = Image.FromStream(this.openFileDialog1.OpenFile()); //获取当前图片的路径 string path = openFileDialog1.FileName.ToString(); //将制定路径的图片添加到FileStream类中 FileStream fs = ne

  • sql server实现分页的方法实例分析

    本文实例讲述了sql server实现分页的方法.分享给大家供大家参考,具体如下: declare @index int,@num int set @index = 1--当前页 set @num = 2--单页包含的行数 --分页1 select top (@num) * from ppohd where doccode not in ( select top (@num * (@index -1)) doccode from ppohd order by doccode ) order by

随机推荐