触发器嵌套级别超出了?
问题描述:
当该触发器被触发,这是包含在下面的代码块触发器嵌套级别超出了?
alter TRIGGER [dbo].[locations_update_geometry_After]
ON dbo.TBL_LOCATIONS
for update
AS
INSERT dbo.TBL_LOCATIONS(SHAPE, X_Coord, Y_Coord,objectid)
SELECT a.Shape, a.X_Coord, a.Y_Coord, a.objectid
FROM
(
SELECT
SHAPE = CASE WHEN SHAPE IS NOT NULL
THEN SHAPE ELSE Geometry::STPointFromText('POINT('
+ CAST(X_Coord AS VARCHAR(20)) + ' '
+ CAST(Y_Coord AS VARCHAR(20)) + ')', 26917) END,
X_Coord = CASE WHEN SHAPE IS NULL THEN X_Coord ELSE SHAPE.STX END,
Y_Coord = CASE WHEN SHAPE IS NULL THEN Y_Coord ELSE SHAPE.STY END,
objectid
FROM inserted
) AS a
我得到以下错误消息:
无法保存编辑。潜在的DBMS错误[Microsoft SQL Server 本机客户端10:最大存储过程,函数,触发器或查看 嵌套级别超出(限制32)。
我没有32个与此表相关的任何东西。有任何想法吗?
答
是的,触发器在投掷消息前执行32次;为了阻止这样做,使用这种
IF ((
SELECT TRIGGER_NESTLEVEL()) > 1)
RETURN
我有同样的错误,但它不喜欢我在其他触发我的数据库我应该在哪里插入这个声明? – Andrey 2013-03-05 02:39:40