我已经使用 SQL 查询几个星期了,我正在尝试从错误中学习和理解。我有两列的表IsInvisible (bit)
和ShortName (string)
当一个被改变为更新的另一个也如: -如果添加〜于SHORTNAME到组的前面IsInvisible
为1,并且如果〜被去除,以将其设置为0 -如果IsInvisible
被设置为1 在 ShortName 前面添加 ~ 并在设置为 0 时将其删除。
我试过这样的事情:
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
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我更新其中一列或同时更新两列时,没有任何反应,并且出现此错误:
Maximum stored …
Run Code Online (Sandbox Code Playgroud) 我对 SQL 查询没有太多经验,我正在尝试从错误中学习和理解。我有两张桌子:
CREATE TABLE #TempTest
(Id INT,
Number INT)
CREATE TABLE #TempTest2
(Id INT,
MaxNo INT,
MinNo INT)
INSERT INTO #TempTest VALUES (1,4)
INSERT INTO #TempTest VALUES (1,6)
INSERT INTO #TempTest VALUES (1,9)
INSERT INTO #TempTest VALUES (1,7)
INSERT INTO #TempTest VALUES (1,3)
INSERT INTO #TempTest VALUES (1,1)
INSERT INTO #TempTest VALUES (1,5)
INSERT INTO #TempTest2 VALUES (1,0,10)
Run Code Online (Sandbox Code Playgroud)
我正在尝试更新MaxNo
第一个表中最大数小于 8 且MinNo
最小数大于 1 的列:
UPDATE t2
SET MaxNo = IIF(t1.Number>t2.MaxNo AND t1.Number<8,t1.Number, t2.MaxNo),
MinNo = IIF(t1.Number<t2.MinNo …
Run Code Online (Sandbox Code Playgroud)