Sql server 如何将一条记录插入到具有标识列的表中
是否可以在表的一列中只插入一条记录 我有一个带有列的表Sql server 如何将一条记录插入到具有标识列的表中,sql-server,vb.net,Sql Server,Vb.net,是否可以在表的一列中只插入一条记录 我有一个带有列的表EMP\u MASTERTBL MASTERID | USERID | EMPNO | LASTNAME | FIRSTNAME | REGION | COUNTRY | ENTITY | LOCATION | JOBTITLE 我需要在某个特定员工中添加新职务,因此我使用了此代码/查询 INSERT INTO EMP_MASTERTBL (MASTERID, JOBTITLE) VALUES ('7634', 'Manager') 但我
EMP\u MASTERTBL
MASTERID | USERID | EMPNO | LASTNAME | FIRSTNAME | REGION | COUNTRY | ENTITY | LOCATION | JOBTITLE
我需要在某个特定员工中添加新职务,因此我使用了此代码/查询
INSERT INTO EMP_MASTERTBL (MASTERID, JOBTITLE) VALUES ('7634', 'Manager')
但我收到了这个错误信息
无法在表中插入标识列的显式值
当IDENTITY\u INSERT设置为OFF时为“EMP\u MASTERTBL”
我只需要为一个特定的员工添加另一个职务。员工可以有多个职务
谢谢。这可能不可能,尤其是当您将列定义为非空时。添加标题的最佳方法是使用如下update语句:update EMP_MASTERTBL SET JOBTILE='Manager',其中USERID='EMPLOYEE'S_USERID';
注意:如果userid是整数,请避免在userid上加引号。这可能是不可能的,尤其是当您将列定义为NOTNULL时。添加标题的最佳方法是使用如下update语句:update EMP_MASTERTBL SET JOBTILE='Manager',其中USERID='EMPLOYEE'S_USERID';
注意:如果userid是整数,请避免在userid上加引号。在SQL Server Studio中,在
INSERT
语句之前先运行此命令。您必须对此表具有ALTER
权限才能运行此操作
SET IDENTITY_INSERT EMP_MASTERTBL ON;
在SQL Server Studio中,首先在
INSERT
语句之前运行此命令。您必须对此表具有ALTER
权限才能运行此操作
SET IDENTITY_INSERT EMP_MASTERTBL ON;
不要将值放入MASTERID,因为它将自动生成。试试这个:
INSERT INTO EMP_MASTERTBL (JOBTITLE) VALUES ('Manager')
不要将值放入MASTERID,因为它将自动生成。试试这个:
INSERT INTO EMP_MASTERTBL (JOBTITLE) VALUES ('Manager')
如果这是
SQL Server
,那是因为表EMP_MASTERTBL
的列MASTER_ID
设置了标识(…,…)
,这会阻止您向其插入值。查看此链接:MySql与SQL Server完全不同您的数据模型只支持每个员工一个标题。在关系设计中,一对多关系需要另一个表,以允许单个员工拥有多个职务。是否尝试更改表中已存在的特定员工的职务?如果是这样,那么您需要一个UPDATE
语句,而不是INSERT
@chrisdunaway我不想更改职务。我试图添加职务,因为一名员工可以有多个职务。如果这是SQL Server
,那是因为表EMP\u MASTERTBL
的列MASTER\u ID
设置了标识(…,…)
,这会阻止您向其插入值。查看此链接:MySql与SQL Server完全不同您的数据模型只支持每个员工一个标题。在关系设计中,一对多关系需要另一个表,以允许单个员工拥有多个职务。是否尝试更改表中已存在的特定员工的职务?如果是这样,那么您需要一个UPDATE
语句,而不是INSERT
@chrisdunaway我不想更改职务。我正在尝试添加职务,因为一名员工可以有多个职务。但它只会更改第一个职务,而不会添加新职务。是吗?是的,我想我错过了问题中的那个细节。不确定是否可以在现有职位上添加新职位,或者在现有职位上添加新职位,但这只会更改第一个职位,而不会添加新职位。是吗?是的,我想我错过了问题中的那个细节。不确定是否可以将新标题添加到现有标题中,或者更好地说,在现有标题中添加新标题我已经尝试过了,然后再次运行我的查询,该查询被插入EMP_MASTERTBL(MASTERID,JOBTITLE)值('7634','Manager'),但我遇到了这个错误“违反主键约束”“PK_EMP_MASTERTBL”。无法在对象“dbo.EMP_MASTERTBL”中插入重复密钥。重复的键值为(76237)。语句已终止。'那么这是另一个错误。这意味着表中MASTERID字段中已经有一条值为76237的记录。(主键冲突)。为什么需要这样做?在这种情况下,没有必要将列定义为IDENITY
。相反,您应该从插入列表中删除标识列。我已经尝试了此操作,然后再次运行我的查询,该查询被插入EMP_MASTERTBL(MASTERID,JOBTITLE)值('7634','Manager'),但我遇到了此错误“违反主键约束'PK_EMP_MASTERTBL'。无法在对象“dbo.EMP_MASTERTBL”中插入重复密钥。重复的键值为(76237)。语句已终止。'那么这是另一个错误。这意味着表中MASTERID字段中已经有一条值为76237的记录。(主键冲突)。为什么需要这样做?在这种情况下,没有必要将列定义为IDENITY
。相当地您应该从插入列表中删除标识列。我比较喜欢这个答案,它到目前为止对我来说是正确的。将添加作业标题,但在不同的masterid或employee中?有许多方法可以解决这个问题。您需要注意错误消息。我比较喜欢这个答案,它到目前为止对我来说是正确的。将添加作业标题但是在不同的masterid或employee中?有很多方法可以解决此问题。您需要注意错误消息。