Jed*_*Jed 1 sql t-sql check-constraints sql-server-express
我有一个SQL(SQL Server Express 2008)表,其中包含一些VARCHAR
字段.
我想创建一个Check Constraint
将确保没有VARCHAR
值包含某些字符.
示例:(不允许在FirstName和LastName列中使用<,>或?字符)
(NOT [FirstName] LIKE '%<%'
AND NOT [FirstName] LIKE '%>%'
AND NOT [FirstName] LIKE '%?%')
AND
(NOT [LastName] LIKE '%<%'
AND NOT [LastName] LIKE '%>%'
AND NOT [LastName] LIKE '%?%')
Run Code Online (Sandbox Code Playgroud)
上面的SQL语法工作正常,但如果有简单的方法做同样的事情会很好.请注意示例中的冗余.如果我想添加更多列和/或无效字符,这很麻烦
如果我们可以做这样的事情会很好:
NOT FirstName,LastName LIKE IN ('<','>','?')
Run Code Online (Sandbox Code Playgroud)
我可以在Check Constraint
表达式中做这样的事情吗?
您可以使用
NOT ([FirstName] LIKE '%[<>?]%' OR [LastName] LIKE '%[<>?]%')
Run Code Online (Sandbox Code Playgroud)