显式值插入表的自增列中(SQL Server)

语法

SET IDENTITY_INSERT [ database.[ owner.] ] { table } { ON | OFF }

参数

database

是指定的表所驻留的数据库名称。

owner

是表所有者的名称。

table

是含有标识列的表名。

注释

任何时候,会话中只有一个表的 IDENTITY_INSERT 属性可以设置为 ON。如果某个表已将此属性设置为 ON,并且为另一个表发出了 SET IDENTITY_INSERT ON 语句,则 Microsoft® SQL Server™ 返回一个错误信息,指出 SET IDENTITY_INSERT 已设置为 ON 并报告此属性已设置为 ON 的表。

如果插入值大于表的当前标识值,则 SQL Server 自动将新插入值作为当前标识值使用。

SET IDENTITY_INSERT 的设置是在执行或运行时设置,而不是在分析时设置。

权限

执行权限默认授予 sysadmin 固定服务器角色和 db_ownerdb_ddladmin 固定数据库角色以及对象所有者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL Server中,可以使用IDENTITY_INSERT选项来插入自定义自增列中。在同步带有自增时,需要使用该选项来保持自增一致。 例如,假设我们有一个名为Table1的,其中有一个自增ID。我们使用以下脚本在目标数据库中创建该: ``` CREATE TABLE Table1 ( ID INT IDENTITY(1,1) PRIMARY KEY, Column1 VARCHAR(50), Column2 INT ) ``` 在Kettle中,我们可以使用Insert/Update组件来同步数据。在该组件的设置中,需要将Insert中的“Use Generated Keys”选项设置为“否”,并且在SQL语句中手动指定自增。例如: ``` INSERT INTO Table1 (ID, Column1, Column2) VALUES (?, ?, ?) ``` 在该SQL语句中,第一个参数指定要插入自增,后面的参数则是要插入的其他。在Kettle中,我们可以使用“Set Field Value”步骤来手动设置第一个参数的,或者使用变量来动态设置该。 在同步时,我们需要确保源和目标中的自增的起始和增量保持一致。我们可以使用以下脚本来查看源自增信息: ``` DBCC CHECKIDENT ('Table1', NORESEED) ``` 该脚本将显示源自增的当前和增量。我们需要手动将目标自增设置为相同的,以保持一致性。例如: ``` DBCC CHECKIDENT ('Table1', RESEED, 100) ``` 该脚本将重置目标自增的当前为100,增量保持不变。这样,我们就可以保持源和目标自增一致了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值