-3

私はテーブルを持っていますAuditTrail

このクエリを実行すると:

INSERT INTO AuditTrail
                     ( EntityName, Date, [User], Action, OldValue
                      , NewValue, ModuleName, EntityRef, EntityAttribute
                      , EntityAltRef) 
VALUES (aaa, '2012-02-07 00:00:00.000', sa, DELETE, '11', aaa, aaa, sa, aaa, aaa)

エラーが発生する

Incorrect Syntax Near Keyword 'DELETE'

ここで何が間違っていますか?

これがテーブル構造です

ID                numeric(18, 0)  Unchecked
EntityName        nvarchar(60)    Unchecked
Date              datetime        Unchecked
[User]            sysname         Unchecked
Action            varchar(30)     Unchecked
OldValue          varchar(1024)   Checked
NewValue          varchar(1024)   Checked
ModuleName        varchar(6)      Checked
EntityRef         varchar(30)     Checked
EntityAttribute   varchar(60)     Checked
EntityAltRef      varchar(64)     Checked
4

3 に答える 3

2

'sa と delete の間に追加します。

INSERT INTO AuditTrail ( EntityName, Date, [User], Action, OldValue, NewValue, ModuleName, EntityRef, EntityAttribute, EntityAltRef) 
VALUES ('aaa','2012-02-07 00:00:00.000','sa','DELETE','11','aaa','aaa','sa','aaa','aaa')

sa はデフォルトの管理者ユーザーであり、delete は SQL のキーワードです。それらをリテラルとして挿入する必要があるため、 でカプセル化する必要があります。これも文字列値である'と想定しています。aaa

于 2013-06-14T07:42:23.343 に答える
1

これはDELETE予約済みのキーワードであるため、引用符でエスケープして、データベースがコマンドではなくフィールドであることを理解できるようにする必要があります。あなたも使っています

INSERT INTO AuditTrail ( EntityName, Date, [User], Action, OldValue, NewValue, ModuleName, EntityRef, EntityAttribute, EntityAltRef) VALUES (aaa,'2012-02-07 00:00:00.000',sa,'DELETE','11',aaa,aaa,sa,aaa,aaa)

他のフィールドを確認し、整数列の値を引用符で囲む必要がないことに注意してください'

于 2013-06-14T07:44:14.787 に答える
1

DELETE はコマンドであり、直接使用することはできません。単一引用符で囲むと、データベースはコマンドではなく文字列であることがわかります。

INSERT INTO AuditTrail
                     ( EntityName, Date, [User], Action, OldValue
                      , NewValue, ModuleName, EntityRef, EntityAttribute
                      , EntityAltRef) 
              VALUES (aaa,'2012-02-07 00:00:00.000'
                     ,sa,'DELETE','11',aaa,aaa,sa,aaa,aaa);
于 2013-06-14T07:48:17.113 に答える