我得到命令set identity_insert table_name on;
,但由于某种原因,它实际上并没有改变属性。我已经使用我创建表格的帐户完成了这项工作,并且我还创建了一个“管理员”帐户并授予其执行任何操作的权限(据我所知)。
每当我在任一帐户下运行命令时,我得到'0行受影响'的结果,然后我无法运行查询以插入我想插入的行,并出现以下错误:
无法在表'table_name'中为identity列插入显式值 当IDENTITY_INSERT设置为OFF时。
此外,我尝试在查询中包含架构名称,如:
set identity_insert mySchema.table_name on;
但是我收到以下错误:
找不到对象“mySchema.table_name”,因为它不存在 或者您没有权限。
另外值得注意的是,我的项目如下:
localhost\SQLEXPRESS
-Databases
--System Databases
--mySchema
有谁知道这个问题的解决方案?感谢。
以下是插入语句的摘录,如果有拼写错误,请确保它是MySQL中的工作查询:
INSERT INTO table_name (id,name,size,height,width,created_at,updated_at) VALUES
(1,'a_name',36,36,36,'2012-10-24 17:12:24','2012-10-24 17:12:24');
答案 0 :(得分:3)
set identity_insert .. on仅在当前会话中有效且仅在一个表格上有效 通常,它不是应该在实际代码中使用的设置,仅用于快速和脏的修复(例如,在跨服务器迁移数据时它非常有用)
我建议设置ON
,在同一个SSMS窗口中执行修改,然后将其设置为默认值OFF
(关闭窗口也可以)。