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