2014-11-22 105 views
-3

中的某些值之間我想讓我的表中的密碼列的長度在一定長度之間,比如12到20之間,我該如何去做這件事。如何檢查密碼長度在sql

+2

不,你不知道。密碼列應該包含長哈希。 – zzzzBov 2014-11-22 16:53:03

+0

@zzzzBov我只是想知道如何檢查任何varchar值的長度 – fana 2014-11-22 17:02:46

+0

然後問* that *問題。如所寫,這是[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。 – zzzzBov 2014-11-22 17:42:20

回答

0

我想這就是你要找的。

CREATE TABLE [dbo].[MyTestTable] ([myColumn] VARCHAR(20)) 
GO 
ALTER TABLE [dbo].[MyTestTable] 
ADD CONSTRAINT minlength CHECK (DATALENGTH([myColumn]) >= (12)) 
GO 

以下鏈接有一些額外的信息。另外,這傢伙的博客是我見過的最好的sql。 http://blog.sqlauthority.com/2007/06/01/sql-server-2005-constraint-on-varcharmax-field-to-limit-it-certain-length/

+0

此答案是以密碼以純文本形式存儲的,因此儘管技術上可能正確,但它似乎支持存儲密碼不正確。當然,他們應該使用適當的算法進行哈希處理。 – halfer 2014-11-22 18:53:04

+0

同意。 @fana在評論中澄清說,這個問題應該適用於任何varchar,這就是我爲什麼這樣回答的原因。 – Asha 2014-11-22 19:34:10