Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQL Server:Có thể chèn vào hai bảng cùng một lúc không?

Trong một tuyên bố :Không.

Trong một giao dịch :Có

BEGIN TRANSACTION
   DECLARE @DataID int;
   INSERT INTO DataTable (Column1 ...) VALUES (....);
   SELECT @DataID = scope_identity();
   INSERT INTO LinkTable VALUES (@ObjectID, @DataID);
COMMIT

Tin tốt là mã trên cũng được đảm bảo là nguyên tử , và có thể được gửi đến máy chủ từ một ứng dụng khách bằng một chuỗi sql trong một lệnh gọi hàm đơn lẻ như thể đó là một câu lệnh. Bạn cũng có thể áp dụng một trình kích hoạt cho một bảng để có được hiệu ứng của một lần chèn. Tuy nhiên, cuối cùng vẫn là hai câu lệnh và bạn có thể không muốn chạy trình kích hoạt cho mọi chèn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách cài đặt SQL Server trên Ubuntu 18.04

  2. Kiểm toán dữ liệu trong NHibernate và SqlServer

  3. Mục đích của bảng hệ thống master..spt_values ​​là gì và ý nghĩa của các giá trị của nó là gì?

  4. Tạo một mô hình khung thực thể mở rộng nhiều cơ sở dữ liệu

  5. Điều chỉnh SQL Server - tất cả là về đo lường