Tôi đã kích hoạt sau trên một bảng cho một cơ sở dữ liệu SQL Server 2008. Đó là đệ quy, vì vậy tôi cần phải dừng lại.Làm cách nào để ngăn trình kích hoạt cơ sở dữ liệu đệ quy?
Sau khi tôi chèn hoặc cập nhật bản ghi, tôi đang cố cập nhật một trường đơn lẻ trên bảng đó.
Dưới đây là cò:
ALTER TRIGGER [dbo].[tblMediaAfterInsertOrUpdate]
ON [dbo].[tblMedia]
BEFORE INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON
DECLARE @IdMedia INTEGER,
@NewSubject NVARCHAR(200)
SELECT @IdMedia = IdMedia, @NewSubject = Title
FROM INSERTED
-- Now update the unique subject field.
-- NOTE: dbo.CreateUniqueSubject is my own function.
-- It just does some string manipulation.
UPDATE tblMedia
SET UniqueTitle = dbo.CreateUniqueSubject(@NewSubject) +
CAST((IdMedia) AS VARCHAR(10))
WHERE tblMedia.IdMedia = @IdMedia
END
bất cứ ai có thể cho tôi biết làm thế nào tôi có thể ngăn chặn chèn của cò từ đá tắt kích hoạt một lần nữa?
Một số người đã nói để vô hiệu hóa kích hoạt đệ quy. ngay bây giờ, tôi sẽ không muốn chạm vào thiết lập đó. Tôi thích sửa lỗi tsql. –
Sau đó, những khoảng trống kích hoạt không nên TRƯỚC KHI một bộ kích hoạt INSTEAD OF? http://msdn.microsoft.com/en-us/library/ms175089.aspx –