27,580
社区成员
发帖
与我相关
我的任务
分享
set xact_abort on
begin tran
delete from XX where yy='1'
delete from ZZ where aa in(select [A] from [B] where C=5)
commit tran
--CREATE TABLE test(id INT,NAME VARCHAR(10))
--INSERT INTO test
--SELECT 1,'a'
--UNION ALL
--SELECT 2,'b'
--UNION ALL
--SELECT 3,'c'
SELECT * FROM test
BEGIN TRAN
DELETE FROM test WHERE id=1
DELETE FROM test WHERE id =(SELECT 1 id UNION ALL SELECT 2 )
IF @@ERROR >0
ROLLBACK
ELSE
COMMIT ;
SELECT * FROM test
/*
id NAME
----------- ----------
1 a
2 b
3 c
(3 row(s) affected)
(1 row(s) affected)
Msg 512, Level 16, State 1, Line 14
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.
id NAME
----------- ----------
1 a
2 b
3 c
*/