Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.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_Sql Server 2008 - Fatal编程技术网

SQL SERVER合并错误

SQL SERVER合并错误,sql,sql-server-2008,Sql,Sql Server 2008,我有这个用于合并的源表,目标表有相同的字段 ID Name Birth Work 123 john doe 01/20/2000 plumber 123 john doe 01/20/2000 carpenter 234 john ere 12/12/1990 driver 345 john wel 02/21/1998

我有这个用于合并的源表,目标表有相同的字段

ID       Name           Birth            Work
123      john doe       01/20/2000       plumber
123      john doe       01/20/2000       carpenter
234      john ere       12/12/1990       driver
345      john wel       02/21/1998       janitor
但当我尝试使用Merge语句从源传输数据时,它会提示一个错误,如“重复主键”,有时还会提示“无法更新数据,因为它已更新一次”。如何避免这些错误

我想做的是,在我的源表中,它充当工人(历史)的准入,我的目标数据是主列表。谁能帮我避免这个错误

这是我的疑问:

MERGE EMPMASTER  as T
USING (Select ID,Name,Birth,Work from ADMISSION) as S
ON (CAST(T.IDNum as int)=Cast(S.ID as int))
WHEN NOT MATCHED by TARGET
THEN
INSERT (IDNum,EMPName,EMPBirth,EMPWork)

Values (ID,Name,Birth,Work)

WHEN MATCHED  THEN

UPDATE Set IDNum=ID,
           EMPName=Name,
           EMPBirth=Birth,
           EMPWork=Work);
所以在我的主列表表中,它看起来像:

ID       Name           Birth            Work
    123      john doe       01/20/2000       carpenter
    234      john ere       12/12/1990       driver
    345      john wel       02/21/1998       janitor
你有 重复项 在源代码上(基于
ID
,这是您的
合并在
列上)

您可以在源代码中使用分组,这样每个
ID
只需要一个值,也可以事先清理源代码,使每个
ID
只有一条记录 重复项 在源代码上(基于
ID
,这是您的
合并在
列上)


您可以在源代码中使用分组,这样每个
ID
只需要一个值,或者您可以事先清理源代码,使每个
ID

ID
只有一条记录是标识列??yes ID是标识列您不能插入
IDENTITY
列的值。如果它只是主键,那么它也不允许您添加重复的值。您必须添加要作为新表中的
FK
插入的
ID
ID
是标识列??yes ID是标识列您不能插入
IDENTITY
列的值。如果它只是主键,那么它也不允许您添加重复值。您必须将要插入的
ID
作为
FK
添加到新表中。