4
A
回答
6
一些事情,你可以使用AFTER
觸發UPDATE/INSERT
:
CREATE TABLE tab(col NVARCHAR(100));
CREATE TRIGGER trg_tab
ON tab
AFTER INSERT, UPDATE
AS
IF (SELECT COUNT(*) FROM tab WHERE col = 'username') > 10
ROLLBACK;
INSERT INTO tab(col)
VALUES ('username'), ('username'), ('username'), ('username'),
('username'), ('username'), ('username'), ('username'),
('username'),('username');
INSERT INTO tab(col)
VALUES ('username');
/* The transaction ended in the trigger. The batch has been aborted. */
或者使用SCALAR FUNCTION
和CHECK
約束:
CREATE TABLE tab(col NVARCHAR(100));
CREATE FUNCTION dbo.CheckFunction()
RETURNS INT
AS
BEGIN
RETURN (SELECT COUNT(*) FROM tab WHERE col = 'username')
END;
ALTER TABLE tab
ADD CONSTRAINT chkRowCount CHECK (dbo.CheckFunction() <= 10);
INSERT INTO tab(col)
VALUES ('username'), ('username'), ('username'), ('username'),
('username'), ('username'), ('username'), ('username'),
('username'),('username');
INSERT INTO tab(col)
VALUES ('username');
/* The INSERT statement conflicted with the CHECK constraint "chkRowCount".
The conflict occurred in database "db_6_34d5e", table "dbo.tab". */
2
在表上創建一個AFTER INSERT
觸發器。這樣
create trigger LimitTable
on YourTableToLimit
after insert
as
declare @tableCount int
select @tableCount = Count(*)
from YourTableToLimit
if @tableCount > 50
begin
rollback
end
go
相關問題
- 1. 只允許一個查詢字符串
- 2. 只允許輸入一個字符的實例C#
- 3. 只允許用戶名字母
- 4. 只允許登錄網站的用戶的一個實例
- 5. 只允許一個頁面的實例
- 6. 只允許8個字符
- 7. 只允許EditText中的字符串
- 8. 限制名稱末尾只有一個連字符用戶名
- 9. 只允許一個python腳本實例?
- 10. 允許AWS IAM用戶只啓動一個ec2實例
- 11. 只允許字符串中的某個字符。 Javascript
- 12. 只允許7個字母數字字符,但無限空間
- 13. 只允許數字字符
- 14. 允許並限制一些HTML字符
- 15. Power BI Admin連接字符串只允許500個字符?
- 16. 強制JTextField字符串值,而DocumentFilter只允許數字
- 17. 正則表達式限制特殊字符,只允許DOT和&
- 18. 如何限制字符串不允許使用數字或特殊字符?
- 19. 限制字符串10個字符的jQuery動態元素
- 20. 允許用戶ssh到EC2 Ubuntu實例?
- 21. 只允許ASCII字符VBA
- 22. 只允許小寫字符
- 23. 只允許某些字符
- 24. 只允許在字母數字和字符之間使用一個字符串
- 25. 只允許一個實例字段但需要更多?
- 26. 限制Django管理員只允許超級用戶
- 27. 如何只允許一個用戶運行我的C#程序,但也允許多個實例?
- 28. 檢查字符串是否只包含允許的字符
- 29. 只想允許字符串中的某些字符
- 30. 只允許字符串中的某些字符
我認爲這更符合業務邏輯,所以我會從應用程序而不是數據庫處理它 – Gouda
你的意思是在文本列值的內容來計算「用戶名」?就像爲CEO等文本中的關鍵字計數一樣 – Eralper