-4

SQLトランザクションが機能しない:

BEGIN TRANSACTION AddEmployees
   INSERT INTO Employees
      VALUES(N'595002', N'John Meah', N'20000212', 32.25),
      (N'928375', N'Chuck Stansil', N'20080628'),
      (N'792764', N'Orlando Perez', N'20000616', 12.95);
   COMMIT TRANSACTION AddEmployees;
GO
4

3 に答える 3

3

行にパラメータがありません。次の行を使用してください。

(N'928375', N'Chuck Stansil', N'20080628', null),

これはトランザクションに関するものではなく、テーブル値コンストラクターの各行の列数が同じでなければならないためです。

テーブルでnullが許可されていない場合は、DEFAULTの関連パラメーターを渡します。

于 2012-08-21T14:45:57.223 に答える
2

問題の一部は、間違った構文を使用していることです。SQL-Server 2005 では、ステートメント,間にコンマを使用できません。valuesINSERT INTO....VALUES...ステートメントを指定する必要があります。そして、2番目INSERTに正しい数のパラメーターがありません:

BEGIN TRANSACTION AddEmployees
   INSERT INTO Employees
      VALUES(N'595002', N'John Meah', N'20000212', 32.25)

    INSERT INTO Employees
      VALUES(N'928375', N'Chuck Stansil', N'20080628', null)

    INSERT INTO Employees
      VALUES(N'792764', N'Orlando Perez', N'20000616', 12.95)
   COMMIT TRANSACTION AddEmployees;
GO
于 2012-08-21T14:47:24.993 に答える
1

ステートメントが実行されるように、4 番目のデータベース フィールドのデフォルト値を作成します。

于 2012-08-21T14:48:00.127 に答える