Sun*_*Sun -1 sql-server check-constraints
我尝试导入一条在 addr 字段中带有分号的记录。一旦我从导入文件中删除分号,以下错误就消失了:
发生数据库错误 SQLSATE = 23000
[Microsoft][ODBC SQL Server 驱动程序][SQL Server]
INSERT 语句与 CHECK 约束“addr_customer”冲突。冲突发生在数据库“db”、表“dbo.customer”、列“addr”中。
存储过程有这段话。我试图在LIKE
子句中理解约束检查正在寻找哪些其他字符。显然分号是不允许的。'%[
我是否阅读了和之间列出的每个字符']%
都是不允许的字符(例如“ | ; % _ ' )的子句?
TABLE [dbo].[customer] WITH
CHECK ADD CONSTRAINT
[addr_customer]
CHECK ((NOT [addr] like '%[,"|;%_'']%'))
Run Code Online (Sandbox Code Playgroud)
此CHECK
约束验证该值与模式不匹配LIKE
。
该模式的评估如下
%
以任意字符、多个字符或无字符开头[,"|;%_'']
括号内的任何实际字符(不包括括号),并且'
由于转义而加倍。%
后跟任意、多个或无字符因此本质上,该值不能包含任何字符,"|;%_'
。
它还允许NULL
插入 s,假设没有约束NOT NULL
。