如何使用正则表达式检查 SQL Server 2012 中的属性?
How to check attribute in SQL Server 2012 using regular expressions?
我需要插入一个设备型号代码,是一个字符串格式为:
AAA-0123456
必须是,3个大写字母,中间的“-”和6个数字,
我认为我需要进行约束检查(模型代码如正则表达式)。
我该怎么做?
您可以通过检查约束来执行此操作,请参见此处:http://www.w3schools.com/sql/sql_check.asp
是的,您可以将正则表达式放在检查约束中,这是一个示例:
CREATE TABLE dbo.PEOPLE (
name VARCHAR(25) NOT NULL
, emailaddress VARCHAR(255) NOT NULL
, CONSTRAINT PEOPLE_ck_validemailaddress CHECK ( dbo.RegExValidate( emailaddress, N'^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$' ) = 1 )
)
您的正则表达式为:[A-Z][A-Z][A-Z][-][0-9][0-9][0-9][0-9][0-9][0-9][0-9]
这是构建和测试 reg expr 的好工具http://www.regexr.com/
我需要插入一个设备型号代码,是一个字符串格式为:
AAA-0123456
必须是,3个大写字母,中间的“-”和6个数字, 我认为我需要进行约束检查(模型代码如正则表达式)。
我该怎么做?
您可以通过检查约束来执行此操作,请参见此处:http://www.w3schools.com/sql/sql_check.asp
是的,您可以将正则表达式放在检查约束中,这是一个示例:
CREATE TABLE dbo.PEOPLE (
name VARCHAR(25) NOT NULL
, emailaddress VARCHAR(255) NOT NULL
, CONSTRAINT PEOPLE_ck_validemailaddress CHECK ( dbo.RegExValidate( emailaddress, N'^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$' ) = 1 )
)
您的正则表达式为:[A-Z][A-Z][A-Z][-][0-9][0-9][0-9][0-9][0-9][0-9][0-9]
这是构建和测试 reg expr 的好工具http://www.regexr.com/