检查 SQL 中的字段是否包含特定的字母数字格式

Mik*_*all 3 sql t-sql sql-server

我需要测试 SQL 表中的特定列以查找特定字母数字格式之外的任何差异。在此字段中,正确的格式应该是一个字母字符后跟六个数字,例如 G123456。第一个字母可以是字母表中的任何字母(大写或小写),数字可以是任何六位数字序列。但该模式始终是一个字母后跟六位数字。

我已经进行了一些搜索,但无法提出解决方案。欢迎大家提出意见!

我正在运行 SQL Server 2008 R2。

谢谢!

Ian*_*son 5

如果要检查现有数据是否存在超出预期格式的差异,可以这样查询:

SELECT * FROM [dbo].[TableName] 
WHERE [FieldName] NOT LIKE '[A-Z][0-9][0-9][0-9][0-9][0-9][0-9]'
Run Code Online (Sandbox Code Playgroud)

如果您想首先防止无效数据进入表中,您可以添加一个检查约束:

ALTER TABLE [dbo].[TableName] ADD  CONSTRAINT [CK_TableName_FieldName] 
CHECK  (FieldName like '[A-Z][0-9][0-9][0-9][0-9][0-9][0-9]' )
GO
Run Code Online (Sandbox Code Playgroud)