Mik*_*all 3 sql t-sql sql-server
我需要测试 SQL 表中的特定列以查找特定字母数字格式之外的任何差异。在此字段中,正确的格式应该是一个字母字符后跟六个数字,例如 G123456。第一个字母可以是字母表中的任何字母(大写或小写),数字可以是任何六位数字序列。但该模式始终是一个字母后跟六位数字。
我已经进行了一些搜索,但无法提出解决方案。欢迎大家提出意见!
我正在运行 SQL Server 2008 R2。
谢谢!
如果要检查现有数据是否存在超出预期格式的差异,可以这样查询:
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)
| 归档时间: |
|
| 查看次数: |
16667 次 |
| 最近记录: |