sqlserver 批量插入记录时,对有标识列的字段要设置 set IDENTITY_INSERT 表名 on,然后再执行插入记录操作;插入完毕后恢复为 off 设置
格式:
set IDENTITY_INSERT 表名 on
set IDENTITY_INSERT 表名 off
举例:
set IDENTITY_INSERT peoplePworkpositiontype on
insert peoplePworkpositiontype(id,workpositiontype,workpositiontypeid) values(1 , '平台' , 1 )
insert peoplePworkpositiontype(id,workpositiontype,workpositiontypeid) values(2 , '陆地' , 2 )
insert peoplePworkpositiontype(id,workpositiontype,workpositiontypeid) values(3 , '海上' , 3 )
go
set IDENTITY_INSERT peoplePworkpositiontype off
set IDENTITY_INSERT peoplePstatetype on
insert peoplePstatetype(id,nowstatetype,nowstatetypeid) values(1 , '出海' , 1 )
insert peoplePstatetype(id,nowstatetype,nowstatetypeid) values(2 , '出差' , 2 )
insert peoplePstatetype(id,nowstatetype,nowstatetypeid) values(3 , '公司' , 3 )
insert peoplePstatetype(id,nowstatetype,nowstatetypeid) values(4 , '会议' , 4 )
go
set IDENTITY_INSERT peoplePstatetype off
go
分享到:
相关推荐
在设置了`SET IDENTITY_INSERT products ON`之后,我们可以显式地为标识列指定值。这里我们将`gardenshovel`的`id`值设为1。 4. **对另一个表使用 SET IDENTITY_INSERT**: ```sql CREATE TABLE products2 ( id...
**结果分析:** 如果没有先执行 `SET IDENTITY_INSERT products ON`,那么这条语句将因为默认的 `IDENTITY_INSERT` 设置为 `OFF` 而失败。 ##### 示例三:启用 `IDENTITY_INSERT` 并插入指定 `IDENTITY` 值的记录 ...
1. 当 `IDENTITY_INSERT` 设置为 `ON` 时,不能在同一会话中对同一表再次执行 `SET IDENTITY_INSERT ON`。 2. 如果尝试插入的值已经存在于标识列中,或者超过了该列的最大值,插入操作将失败。 3. 在数据迁移后,...
3. 完成插入操作后,使用`SET IDENTITY_INSERT table_name OFF`关闭显式插入权限,恢复到默认状态,防止后续操作错误地修改自动增长列的值。 这个解决方案适用于在数据迁移、数据同步或复制场景下,但需要注意的是...
解决这个问题的方法是,首先使用`SET IDENTITY_INSERT`命令将特定表的标识插入设置为ON,然后在插入语句中明确指定列列表,最后再关闭`IDENTITY_INSERT`。以下是一个示例: ```sql -- 开启IDENTITY_INSERT SET ...
语法为:SET IDENTITY_INSERT [database.[ owner.]] {table } { ON |OFF },其中 database 是指定的表所驻留的数据库名称,owner 是表所有者的名称,table 是含有标识列的表名。 3、DBCC CHECKIDENT DBCC ...
Set Identity_Insert identitytable on ``` 然后执行插入操作: ```sql Insert into identitytable (number, Name) values(5, '商场') ``` 这里我们指定了`number`列的值为5,`Name`列为'商场'。注意,这种方法需要...
SET IDENTITY_INSERT TestIdentityGaps OFF; ``` 现在,我们可以看到插入了具有指定主键值的新行。但要注意,一旦 `IDENTITY_INSERT` 设置为 `ON`,如果尝试插入已经存在的主键值,仍然会导致错误。因此,确保插入...
1. `SET IDENTITY_INSERT` 只能在当前会话中生效,关闭会话后,该设置将失效。 2. 在同一时间,只能对一个表开启`IDENTITY_INSERT`,如果尝试对另一个表打开,而前一个表未关闭,将导致错误。 3. 如果尝试插入已存在...
首先,我们需要使用`SET IDENTITY_INSERT [TableName] ON`命令来允许对特定表(如`member`)的标识列进行显式插入。这会暂时关闭自动增长的机制,允许我们手动指定一个值。 接着,我们可以执行插入语句,如`INSERT ...
SET IDENTITY_INSERT [database_name].[schema_name].[table] { ON | OFF } ``` 其中,`database_name`是表所在的数据库名称,`schema_name`是表所属的架构名称,`table`则是包含标识列的表名。当`IDENTITY_INSERT`...
这通过`set identity_insert @tableName on`语句实现。 3. **构建插入语句**:存储过程接着构建了一个SQL插入语句,用于拷贝数据。它遍历`syscolumns`视图,筛选出非计算字段(`iscomputed <> 1`),并将这些字段名...
SET IDENTITY_INSERT Employees ON; INSERT INTO Employees (EmployeeID, FirstName, LastName) VALUES (100, 'John', 'Doe'); SET IDENTITY_INSERT Employees OFF; ``` - **重置自动增长**:如果自动增长值...
SET IDENTITY_INSERT TableName ON INSERT INTO TableName (ID, ...) VALUES (1, ...) SET IDENTITY_INSERT TableName OFF DBCC CHECKIDENT (TableName, RESEED, 1) ``` 4. **通用SQL查询语句**:简单的...
print 'SET IDENTITY_INSERT ' + @TableName + ' OFF' ``` ### 总结 该存储过程提供了一种简单有效的方法来将现有表中的数据转换成INSERT语句。这对于备份数据、恢复数据或迁移数据库等场景都非常有用。此外,它...