SQL_INSERT使用技巧

字號:

SQL INSERT語法使用技巧一例
    在SQL Server在線圖書(SSBOL)中,請定位sp_dbcmptlevel,然后找出描述6.0、6.5和7.0之間版本兼容性的數(shù)據(jù)表。你可以注意到INSERT SQL語句有如下所示的語法。
    INSERT X
    SELECT select_listsintosY
    早期的SQL Server數(shù)據(jù)庫(6.0或者6.5版本)可以正確地解析這樣的語句,但新的SQL Server數(shù)據(jù)庫(7.0或者8.0版本)就不能正確解析了。雖然語法中的Y在任何兼容級設(shè)置下都不用做插入操作的接收者,但舊的數(shù)據(jù)庫還允許這樣的語法存在。這種語法在新的數(shù)據(jù)庫中都因其更嚴格的語法檢查而無法執(zhí)行,然而,這種"嚴格要求"卻讓用戶編寫的代碼更具穩(wěn)固性。
    以下是一個可以在SQL Server 7.0或者2000上運行的簡單腳本,該腳本說明了以上的語法如何通過舊數(shù)據(jù)庫的測試但卻不能通過新數(shù)據(jù)庫的檢查。
    SET NOCOUNT OFF
    GO
    USE pubs
    GO
    IF EXISTS (SELECT * FROM sysobjectsswherestype =
    '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 ,1sintosy
    GO
    EXEC sp_dbcmptlevel pubs, 70
    GO
    INSERT test
    SELECT 2 ,1sintosy
    GO