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

Sql server 从新插入的行更新具有作用域标识的表

Sql server 从新插入的行更新具有作用域标识的表,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我有一个表,其中我需要用ticketnumber更新一列。 这些ticketNumber是在另一个表中创建的,该表是一个标识字段 这个代码不起作用。为什么? UPDATE sheet10 SET [TicketNummer] = (INSERT INTO ticketnummers (AangemaaktOp, aangemaaktdoor,verwijderd,afgewezen) VALUES ('2014-01-20 15:00:00',100,0,0) SELECT SCOPE_IDEN

我有一个表,其中我需要用ticketnumber更新一列。 这些ticketNumber是在另一个表中创建的,该表是一个标识字段

这个代码不起作用。为什么?

UPDATE sheet10
SET [TicketNummer] = (INSERT INTO ticketnummers (AangemaaktOp, aangemaaktdoor,verwijderd,afgewezen) VALUES ('2014-01-20 15:00:00',100,0,0) SELECT SCOPE_IDENTITY() )
where isnumeric([TicketNummer]) = 0
我做错了什么

rg。
Eric

不能以这种方式使用INSERT。它必须是独立的声明

基本上,您必须分两步执行此操作:

INSERT INTO ticketnummers (AangemaaktOp, aangemaaktdoor,verwijderd,afgewezen) VALUES ('2014-01-20 15:00:00',100,0,0);

UPDATE sheet10
    SET [TicketNummer] = SCOPE_IDENTITY()
where ISNULL([TicketNummer], 0) = 0

不能以这种方式使用INSERT。它必须是独立的声明

基本上,您必须分两步执行此操作:

INSERT INTO ticketnummers (AangemaaktOp, aangemaaktdoor,verwijderd,afgewezen) VALUES ('2014-01-20 15:00:00',100,0,0);

UPDATE sheet10
    SET [TicketNummer] = SCOPE_IDENTITY()
where ISNULL([TicketNummer], 0) = 0

不能以这种方式使用INSERT。它必须是独立的声明

基本上,您必须分两步执行此操作:

INSERT INTO ticketnummers (AangemaaktOp, aangemaaktdoor,verwijderd,afgewezen) VALUES ('2014-01-20 15:00:00',100,0,0);

UPDATE sheet10
    SET [TicketNummer] = SCOPE_IDENTITY()
where ISNULL([TicketNummer], 0) = 0

不能以这种方式使用INSERT。它必须是独立的声明

基本上,您必须分两步执行此操作:

INSERT INTO ticketnummers (AangemaaktOp, aangemaaktdoor,verwijderd,afgewezen) VALUES ('2014-01-20 15:00:00',100,0,0);

UPDATE sheet10
    SET [TicketNummer] = SCOPE_IDENTITY()
where ISNULL([TicketNummer], 0) = 0

如果更新有行匹配,可组合DML应该只允许插入

然而

  • 如何关联行
  • 并发插入会发生什么情况
  • 如果多行在sheet10中没有ticketSummer值,该怎么办
  • 还有许多其他问题
总之,这是可能的,即使考虑到设计问题,我从来没有真正这样做过

UPDATE
    sheet10
SET
    TicketNummer = (
    SELECT
        *
    FROM
        (
        INSERT INTO ticketnummers (AangemaaktOp, aangemaaktdoor,verwijderd,afgewezen)
        OUTPUT INSERTED.IDColumn
        VALUES ('2014-01-20 15:00:00', 100, 0, 0)
        ) X
)
WHERE
   ISNULL(TicketNummer, 0) = 0;

如果更新有行匹配,可组合DML应该只允许插入

然而

  • 如何关联行
  • 并发插入会发生什么情况
  • 如果多行在sheet10中没有ticketSummer值,该怎么办
  • 还有许多其他问题
总之,这是可能的,即使考虑到设计问题,我从来没有真正这样做过

UPDATE
    sheet10
SET
    TicketNummer = (
    SELECT
        *
    FROM
        (
        INSERT INTO ticketnummers (AangemaaktOp, aangemaaktdoor,verwijderd,afgewezen)
        OUTPUT INSERTED.IDColumn
        VALUES ('2014-01-20 15:00:00', 100, 0, 0)
        ) X
)
WHERE
   ISNULL(TicketNummer, 0) = 0;

如果更新有行匹配,可组合DML应该只允许插入

然而

  • 如何关联行
  • 并发插入会发生什么情况
  • 如果多行在sheet10中没有ticketSummer值,该怎么办
  • 还有许多其他问题
总之,这是可能的,即使考虑到设计问题,我从来没有真正这样做过

UPDATE
    sheet10
SET
    TicketNummer = (
    SELECT
        *
    FROM
        (
        INSERT INTO ticketnummers (AangemaaktOp, aangemaaktdoor,verwijderd,afgewezen)
        OUTPUT INSERTED.IDColumn
        VALUES ('2014-01-20 15:00:00', 100, 0, 0)
        ) X
)
WHERE
   ISNULL(TicketNummer, 0) = 0;

如果更新有行匹配,可组合DML应该只允许插入

然而

  • 如何关联行
  • 并发插入会发生什么情况
  • 如果多行在sheet10中没有ticketSummer值,该怎么办
  • 还有许多其他问题
总之,这是可能的,即使考虑到设计问题,我从来没有真正这样做过

UPDATE
    sheet10
SET
    TicketNummer = (
    SELECT
        *
    FROM
        (
        INSERT INTO ticketnummers (AangemaaktOp, aangemaaktdoor,verwijderd,afgewezen)
        OUTPUT INSERTED.IDColumn
        VALUES ('2014-01-20 15:00:00', 100, 0, 0)
        ) X
)
WHERE
   ISNULL(TicketNummer, 0) = 0;

ISNUMERIC()
测试到底在做什么?是否将Sheet10中ticketnumber为空的任何行设置为新ticketnumber的值?这不是有点危险吗?我认为您还应该展示如何将这些行放入sheet10,以及它们与刚刚插入ticketnummers的行的关系。PS您所做的错误被称为“发明语法”。:-)这两个表的连接字段是什么?为什么?您可以使用“Composable DML”在一个表中插入并更新另一个表,但是为什么
sheet10
表中已经存在一行,因为
ticketnumers
中的新行名为sheet10的表有900行。更新对我来说是第一步。在此表中,ticketnummer的单元格为空,因此使用IsNummeric函数。填写完本栏后,我使用此表更新了另外两个表。此表的用途是什么?它存储了关于tickets表不包含的tickets的哪些信息?如果您还没有插入900个记录单,为什么它已经有900行了?这是客户希望我放入这些新创建的记录单的信息列表。
ISNUMERIC()
测试到底在做什么?是否将Sheet10中ticketnumber为空的任何行设置为新ticketnumber的值?这不是有点危险吗?我认为您还应该展示如何将这些行放入sheet10,以及它们与刚刚插入ticketnummers的行的关系。PS您所做的错误被称为“发明语法”。:-)这两个表的连接字段是什么?为什么?您可以使用“Composable DML”在一个表中插入并更新另一个表,但是为什么
sheet10
表中已经存在一行,因为
ticketnumers
中的新行名为sheet10的表有900行。更新对我来说是第一步。在此表中,ticketnummer的单元格为空,因此使用IsNummeric函数。填写完本栏后,我使用此表更新了另外两个表。此表的用途是什么?它存储了关于tickets表不包含的tickets的哪些信息?如果您还没有插入900个记录单,为什么它已经有900行了?这是客户希望我放入这些新创建的记录单的信息列表。
ISNUMERIC()
测试到底在做什么?是否将Sheet10中ticketnumber为空的任何行设置为新ticketnumber的值?这不是有点危险吗?我认为您还应该展示如何将这些行放入sheet10,以及它们与刚刚插入ticketnummers的行的关系。PS您所做的错误被称为“发明语法”。:-)这两个表的连接字段是什么?为什么?您可以使用“Composable DML”在一个表中插入并更新另一个表,但是为什么
sheet10
表中已经存在一行,因为
ticketnumers
中的新行名为sheet10的表有900行。更新对我来说是第一步。在此表中,ticketnummer的单元格为空,因此使用IsNummeric函数。填写完本栏后,我使用此表更新了另外两个表。此表的用途是什么?它存储了关于tickets表不包含的tickets的哪些信息?如果你还没有插入900张票,为什么它已经有900行了?这是客户希望我提供的信息列表