Tôi đã làm việc với các truy vấn SQL trong một vài tuần và tôi đang cố gắng học hỏi và hiểu từ những sai lầm của mình. Tôi có một bảng có hai cột IsInvisible (bit)
và ShortName (string)
khi một cột được thay đổi để cập nhật một cột khác cũng như: - nếu được thêm a ~ trước ShortName để đặt IsInvisible
thành 1 và nếu ~ bị xóa để đặt thành 0 - nếu IsInvisible
được đặt thành 0 1 để thêm ~ phía trước Tên ngắn và khi được đặt thành 0 để xóa nó.
Tôi đã thử một cái gì đó như:
ALTER TRIGGER [dbo].[updateInvisibility]
ON [dbo].[table]
AFTER UPDATE
AS
BEGIN
UPDATE t
SET IsInvisible = (CASE WHEN i.ShortName like '~%' THEN 1 ELSE 0 END),
ShortName = (CASE WHEN i.IsInvisible = 1 AND t.ShortName NOT LIKE '~%'
THEN '~' + t.ShortName
ELSE t.ShortName
END)
FROM table t JOIN
inserted i
ON t.Id = i.Id;
end
Vấn đề của tôi là khi tôi cập nhật một trong hai cột hoặc cả hai, không có gì xảy ra và tôi gặp lỗi này:
Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32)
Tôi đang làm gì sai?
Tùy chọn "Cho phép kích hoạt để bắn người khác" hiển thị "Đúng".