當我們有一列將存儲一個只接受字母和數字的用戶名時,我們總是使用javascript甚至服務器驗證從代碼驗證此輸入字段..但我想知道是否有任何方法可以允許我在表列本身進行驗證,甚至有人試圖從任何不接受的地方輸入數據並拋出異常?我可以讓SQL Server 2005 Table Column只接受字母和數字嗎?
0
A
回答
4
你也許可以用做在列上check constraint東西。雖然LIKE(如下面的AakashM所述)足夠聰明,但T-SQL本身不具有正則表達式功能。要獲得完整的正則表達式功能,您可以使用CLR integration來包裝.Net正則表達式函數,然後用UDF包裝正則表達式,並使用檢查約束來調用該函數以評估該列的內容。
這裏的another article關於使用CLR UDF進行T-SQL中的正則表達式匹配。
2
2
毆打由AakashM衝頭,而我在寫這一點,但這裏的代碼反正:
CREATE TABLE #Table
(
Data VARCHAR(50) NOT NULL CHECK(Data NOT LIKE '%[^a-zA-Z90-9]%')
)
INSERT INTO #Table(Data)
VALUES ('123abc')
GO
INSERT INTO #Table(Data)
VALUES ('123_abc')
GO
SELECT * FROM #Table
DROP TABLE #Table
注意,表達的是一個雙重否定,所以「不喜勿(AZ或0-9) 「所以%符號會在插入的字符串的任何位置捕獲違規。
相關問題
- 1. Grails:我如何讓g:textfield只接受數字或只接受字母?
- 2. 讓UITextField只接受Swift中的小字母字母?
- 3. 只接受輸入中的數字和字母
- 4. 如何讓文本框只接受字母字符?
- 5. 我們可以有SQL Server和SQL Server Express的通用連接字符串嗎?
- 6. 分裂數字和字母2005臺
- 7. 我可以在SQL Server 2008上還原SQL Server 2005備份嗎?
- 8. 數字字段只接受數和`,`
- 9. SQL主鍵可以接受'0'嗎?
- 10. 只接受使用preg_match的UTF8字母
- 11. 正則表達式 - 以字母開頭和結尾,只接受字母,數字和_
- 12. 只接受字母作爲輸入
- 13. 正則表達式只接受字母數字數據
- 14. 如何讓textfield只接受LWUIT中的字母?
- 15. SQL Server 2005中的連接字符串可以從文件中獲取嗎?
- 16. 我可以使用SQL Server 2008 R2 Express備份SQL Server 2005數據庫嗎
- 17. 我可以讓SQL 2008 Management Studio驗證SQL 2005的代碼嗎?
- 18. 我們可以使用字母數字字符來命名嗎?
- 19. flex:只接受數字,字母,空格的正則表達式
- 20. SQL Server 2005全文搜索 - 我可以搜索正斜槓字符嗎?
- 21. 如何創建只接受數字的文本框和只接受WPF中的字母的文本框?
- 22. SQL Server Express 2005 unicode字符
- 23. 我可以在SQL Server Report Builder中使用@table變量嗎?
- 24. 可能讓CompareValidator接受帶逗號的數字嗎?
- 25. SQL Server 2005的PDO連接字符串
- 26. 在SQL Server 2005中連接字符串
- 27. mod_rewrite只接受破折號和字母數字,否則拋出404
- 28. 我可以在功能上連接數字和字符串嗎?
- 29. 如何讓文本框只接受數字字符?
- 30. SQL Server:用數字排序字母
你可以用'LIKE'做點什麼嗎?說'檢查'該列是不是[^ a-zA-Z90-9]'? – AakashM 2010-05-27 09:20:25
這是可能的,SQL有範圍[]運算符,請參閱mine和AakashM的方法。 – Meff 2010-05-27 09:40:57
@AakashM - 同意。 LIKE可能會對OP的要求足夠聰明。 – ConcernedOfTunbridgeWells 2010-05-27 11:09:54