--最多允许3条 CREATE TABLE TB(COL INT) INSERT TB SELECT 1 UNION ALL SELECT 2 GO CREATE TRIGGER TRIGGER_TB ON TB INSTEAD OF INSERT AS DECLARE @RC INT, @ROWCOUNT INT SET @ROWCOUNT=@@ROWCOUNT SET @RC=(SELECT COUNT(*) FROM TB) IF @ROWCOUNT+@RC>3 BEGIN SET @ROWCOUNT=@ROWCOUNT+@RC-3 SET ROWCOUNT @ROWCOUNT DELETE TB SET ROWCOUNT 0 END INSERT TB SELECT * FROM INSERTED GOINSERT TB SELECT 3 UNION ALL SELECT 4 SELECT * FROM TBDROP TABLE TB /* COL ----------- 3 2 4 */
CREATE TABLE TB(COL INT)
INSERT TB
SELECT 1 UNION ALL
SELECT 2
GO
CREATE TRIGGER TRIGGER_TB ON TB
INSTEAD OF INSERT
AS
DECLARE @RC INT, @ROWCOUNT INT
SET @ROWCOUNT=@@ROWCOUNT
SET @RC=(SELECT COUNT(*) FROM TB)
IF @ROWCOUNT+@RC>3
BEGIN
SET @ROWCOUNT=@ROWCOUNT+@RC-3
SET ROWCOUNT @ROWCOUNT
DELETE TB
SET ROWCOUNT 0
END
INSERT TB
SELECT * FROM INSERTED
GOINSERT TB
SELECT 3 UNION ALL
SELECT 4
SELECT * FROM TBDROP TABLE TB
/*
COL
-----------
3
2
4
*/