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

Làm cách nào để kiểm tra xem IDENTITY_INSERT được đặt thành BẬT hay TẮT trong SQL Server?

Kể từ khi SET IDENTITY_INSERT là một phiên nhạy cảm, nó được quản lý ở mức bộ đệm mà không cần lưu trữ ở đâu đó. Điều này có nghĩa là chúng tôi không cần kiểm tra IDENTITY_INSERT trạng thái là chúng tôi không bao giờ sử dụng từ khóa này trong phiên hiện tại.

Xin lỗi, không giúp được gì cho việc này.

Tuy nhiên, câu hỏi tuyệt vời :)

Nguồn:Tại đây

Cập nhật Có thể có nhiều cách để làm điều này, cũng được thấy trong trang web mà tôi đã liên kết, IMO, thật là quá nhiều nỗ lực để có thể hữu ích.

if

(select max(id) from MyTable) < (select max(id) from inserted)

--Then you may be inserting a record normally

BEGIN
    set @I = 1 --SQL wants something to happen in the "IF" side of an IF/ELSE
END

ELSE --You definitely have IDENTITY_INSERT on.  Done as ELSE instead of the other way around so that if there is no inserted table, it will run anyway


BEGIN
.... Code that shouldn't run with IDENTITY_INSERT on
END


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 4 cách giúp ngăn quá tải cảnh báo với tính năng giám sát máy chủ SQL

  2. SQL Server JSON_Modify, Làm thế nào để Cập nhật tất cả?

  3. Truy vấn này làm gì để tạo danh sách SQL Server được phân tách bằng dấu phẩy?

  4. Cách tách chuỗi và chèn giá trị vào bảng trong SQL Server

  5. Cách tốt nhất để kiểm soát phiên bản các thủ tục được lưu trữ trên máy chủ SQL của tôi là gì?