问题:当IDENTITY_INSERT设置为OFF时,不能向表'教师'中的标识列id插入显式值。?????
解决方法:
在要插入的语句前加入“SET IDENTITY_INSERT 表名 ON
GO”即可解决
SET IDENTITY_INSERT允许将显式值插入表的标识列中。
语法
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 的表。
如果插入值大于表的当前标识值,则 SQLServer 自动将新插入值作为当前标识值使用。
SET IDENTITY_INSERT的设置是在执行或运行时设置,而不是在分析时设置。
权限
执行权限默认授予sysadmin固定服务器角色和db_owner及db_ddladmin固定数据库角色以
及对象所有者。
示例
下例创建一个含有标识列的表,并显示如何使用 SET IDENTITY_INSERT 设置填充由DELETE语句导致的标识值中的空隙。
-- Create products table.
CREATE TABLE products (id int IDENTITY PRIMARY KEY, product varchar(40))
GO
-- Inserting values into products table.
INSERT INTO products (product) VALUES ('screwdriver')
INSERT INTO products (product) VALUES ('hammer')
INSERT INTO products (product) VALUES ('saw')
INSERT INTO products (product) VALUES ('shovel')
GO
-- Create a gap in the identity values.
DELETE products
WHERE product = 'saw'
GO
SELECT *
FROM products
GO
-- Attempt to insert an explicit ID value of 3;
-- should return a warning.
INSERT INTO products (id, product) VALUES(3, 'garden shovel')
GO
-- SET IDENTITY_INSERT to ON.
SET IDENTITY_INSERT products ON
GO
-- Attempt to insert an explicit ID value of 3
INSERT INTO products (id, product) VALUES(3, 'garden shovel').
GO
SELECT *
FROM products
GO
-- Drop products table.
DROP TABLE products
GO
分享到:
相关推荐
SQL Server 之 SET IDENTITY_INSERT SET IDENTITY_INSERT 想要将值插入到自动编号(或者说是标识列,IDENTITY)中去,需要设定 SET IDENTITY_INSERT
语法 SET IDENTITY_INSERT [ database.[ owner.] ] { table } { ON | OFF } 参数 database ,是指定的表所驻留的数据库名称。 owner 是表所有者的名称。 table 是含有标识列的表名。 使用举例子,往数据库中插入100...
//如果不包含上述定义,在通过SQL命令插入包含编号值的数据时会出现“当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'Address' 中的标识列插入显式值。”异常。 //注意: // 如果在Code-First模式下的编号...
SQL Server中的标识列和ACCESS中的“自动编号”相似,都是插入记录的时候自动生成,一般不允许也不需要我们去手动修改它
则在查询分析器里面会返回错误信息: [plain] 引用内容 服务器: 消息 544,级别 16,状态 1,行 1 当 IDENTITY_Insert 设置为 OFF 时,不能向表 ‘member’ 中的标识列插入显式值。 有的情况我们需要手动插入标识...
SpringMVCDemoThis is just a demo for learningIntelliJ IDEAJDKtomcatSQLServer 2017.2 |...报错:“ 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'user' 中的标识列插入显式值 ”(在 BlogEntity.java 中也是一样)
对于一个设了自动增长标识的数据表来说,它...用SET IDENTITY_INSERT OFF和SET IDENTITY_INSERT ON(推荐这种方法) SET IDENTITY_INSERT [ database_name . [ schema_name ] . ] table { ON | OFF } database_name 指定
在往数据库表中添加一行的时候,要针对自增列插入一个特定值的时候,这个函数就很有用了,比如表结构如: id | text 1 | a ...SET IDENTITY_INSERT [Recursive] OFF 通常我们在导入数据的时候会用
可以通过,set identity_insert tablename (on|off),在运行时控制,是否可以在identity字段中指定值,而不是由系统自动的插入值。 那么,这有什么用处呢。举个例子来说,两个用户之间的聊天,可以有多次,这个用一...
SET IDENTITY_INSERT [dbo].[cj_t] OFF GO -- ---------------------------- -- Table structure for kc_t -- ---------------------------- DROP TABLE [dbo].[kc_t] GO CREATE TABLE [dbo].[kc_t] ( [id] int NOT...
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY]; ---MD5密码123 自己在数据库修改为自己保密的密码,此3个账号之外不可增加其它超级账号 insert Sys_Admin (name,pwd) values ('root',...
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY]; ---MD5密码123 自己在数据库修改为自己保密的密码,此3个账号之外不可增加其 insert Sys_Admin (name,pwd) values ('root','5...
SET IDENTITY_INSERT Employee OFF; INSERT INTO Employee(FirstName, LastName, SupervisorID) VALUES('Sarfatti','Aaron Joseph',null); INSERT INTO Employee(FirstName, LastName, SupervisorID) VALUES('Wu','...
--对销售表ProOut的SaleDate 列进行约束,当不输入值时,系统默认其值为系统当前日期 CREATE DEFAULT Today AS GETDATEA() GO /*ALTER TABLE ProOut ADD CONSTRAINT DF_ProOut_SaleDate DEFAULT('当前日期')FOR ...
CONSTRAINT [PK_RoomInfo] PRIMARY KEY CLUSTERED ( [RoomNo] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] END INSERT INTO [RoomInfo] VALUES (1001...
当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。 12、说明:使用外连接 A、left (outer) join: 左外连接(左连接):结果集几包括连接表的...
当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。 12、说明:使用外连接 A、left (outer) join: 左外连接(左连接):结果集几包括连接表的...
当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。 12、说明:使用外连接 A、left (outer) join: 左外连接(左连接):结果集几包括连接表的...
1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数据库名称(如论坛数据库Forum)-->然后...