The NOLOCK and READUNCOMMITTED lock hints are not allowed for target tables of INSERT, UPDATE or DELETE statements.

Error Message:
Msg 1065, Level 15, State 5, Line 15
The NOLOCK and READUNCOMMITTED lock hints are not allowed for target tables of INSERT, UPDATE or DELETE statements.

Severity level:
15.

Description:
This error message appears when you try to run a INSERT, UPDATE, or DELETE statement in the transaction isolation level READUNCOMMITTED or use the NOLOCK hint for the target table.

Consequences:
The SQL statement cannot be parsed and further execution is stopped.

Resolution:
Errors of the Severity Level 15 are generated by the user and can be fixed by the SQL Server user. The statement cannot be executed this way. You cannot run an INSERT, UPDATE, or DELETE statement in READUNCOMMITTED or use the NOLOCK hint on the target table.

Versions:
All versions of SQL Server.

Example(s):
IF OBJECT_ID (‘dbo.t’) IS NOT NULL
    DROP TABLE dbo.t;
GO
CREATE TABLE dbo.t (s1 sysname);

INSERT INTO dbo.t WITH (NOLOCK)
SELECT
    TABLE_NAME
FROM
    INFORMATION_SCHEMA.TABLES

Remarks:
In the above example we try to INSERT rows from the INFORMATION_SCHEMA.TABLES view into the dbo.T table. Because we use the NOLOCK hint for the table, the error is raised.

]]>

Leave a comment

Your email address will not be published.