【问题标题】:How to insert data to multiple tables in C#如何在C#中向多个表中插入数据
【发布时间】:2014-08-31 02:19:37
【问题描述】:
CREATE TABLE CUSTOMERS( 
  ID INT NOT NULL, 
  NAME VARCHAR (20) NOT NULL, 
  AGE INT NOT NULL, 
  ADDRESS CHAR (25), 
  SALARY DECIMAL (18, 2), 
  PRIMARY KEY (ID)
);

CREATE TABLE ORDERS ( 
  ID INT NOT NULL, 
  DATE DATETIME, 
  CUSTOMER_ID INT references CUSTOMERS(ID), 
  AMOUNT VARCHAR (255), 
  PRIMARY KEY (ID)
);

我想一次将数据插入两个表中,即将表CUSTOMERS中的ID插入表Customer_ID中的Customer_IDORDERS

请帮帮我!

【问题讨论】:

  • 1) 您可以针对插入客户表创建触发器。每当插入发生在客户表中时,触发器就会发生,它将选择最后插入的记录主键(customer_ID)并在第二个表中插入。 2)创建一个存储过程,在插入客户值后返回customer_id,之后您可以获得customer_id并进行另一个db调用以在订单表中插入enteries。
  • 你能告诉我们你是否使用 ado.net、EF、LinqToSql 等
  • 使用最大值(customer_id)
  • @Sathish,如果其他人同时也插入到表中,这可能会遇到问题,不是吗?也许交易可以在这里有所帮助?我认为 scope_identity 会更好 - msdn.microsoft.com/en-us/library/ms190315.aspx

标签: sql c#-4.0


【解决方案1】:

试试这个

DECLARE @CustomerID INT

INSERT INTO Customer ...

SELECT @CustomerID = SCOPE_IDENTITY() FROM Customer 

您将获得最后插入的客户 ID,然后插入到订单表中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多