INSERT Statement syntax tightened. In SQL Server books online (SSBOL), locate sp_dbcmptlevel, and then find the table describing the compatibility level setting between 6.0, 6.5 and 7.0, 8.0. The syntax of an INSERT statement is described as follows a few items down. http://www.microsoft.com/sql/techinfo/productdoc/2000/books.asp INSERT X SELECT select_list INTO Y This may parse correctly for earlier database compatibility levels (6.0 or 6.5) of SQL Server, but it fails to parse for newer database compatibility levels (7.0 or 8.0). Although the Y in the syntax is not used as the receiver of the insert in any of the compatibility levels settings, the older database compatibility levels still allow this syntax. The valid syntax has tightened in newer database compatibility levels, however, enabling users to have more robust coding. The following is a simple script that you can run on either SQL Server 7.0 or 2000, which demonstrates how the syntax passes the older database compatibility level test but fails the newer database compatibility level test. SET NOCOUNT OFF GO USE pubs GO IF EXISTS (SELECT * FROM sysobjects WHERE type = 'U' AND name = 'test') BEGIN DROP TABLE test END GO CREATE TABLE test (col1 INT NULL, col2 INT NULL) GO EXEC sp_dbcmptlevel pubs, 65 GO INSERT test SELECT 1 ,1 INTO y GO EXEC sp_dbcmptlevel pubs, 70 GO INSERT test SELECT 2 ,1 INTO y GO ----------------------------------------