Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何将一条记录插入到具有标识列的表中_Sql Server_Vb.net - Fatal编程技术网

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中?有很多方法可以解决此问题。您需要注意错误消息。