The %ls statement conflicted with the %ls constraint "%.*ls". The conflict occurred in database "%.*ls", table "%.*ls"%ls%.*ls%ls.

Error Message:
Msg 547, Level 16, State 0, Line 6
The %ls statement conflicted with the %ls constraint “%.*ls”. The conflict occurred in database “%.*ls”, table “%.*ls”%ls%.*ls%ls.

Severity level:
16.

Description:
This error message appears when you try to perform a DML statement which conflicts with an existing constraint.

Consequences:
The T-SQL statement can be parsed, but causes the error at runtime.

Resolution:
Error of the Severity Level 16 are generated by the user and can be fixed by the SQL Server user. The statement cannot be executed this way. The values used in the DML statement must satisfy all existing constraint affected by the statement in order to successfully execute the statement.

Versions:
All versions of SQL Server.

Example(s):
CREATE TABLE #t
(
 c1 TINYINT DEFAULT 0
 CONSTRAINT chk_me CHECK(c1 LIKE(‘[0-9]’))
)
INSERT INTO #t SELECT 255
DROP TABLE #t

Remarks:
In the above example we create a table #t and define a DEFAULT and a CHECK constraint for the column c1 of this table. The CHECK constraint ensures that only one-digit number can be entered into that column. The INSERT statement that tries to insert a value of 255 into that column raises the error.

]]>

Leave a comment

Your email address will not be published.