0

私が書いているこのマージスクリプトはコンパイルされておらず、正しい構文を持っていると思います。

MERGE into MyTable ct_current
USING (SELECT '0%' as Description, '0' as ShareAmount) ct_value
    ON ct_current.ShareAmount = ct_value.ShareAmount
WHEN MATCHED THEN 
    UPDATE SET ct_current.Description = '0%'
WHEN NOT MATCHED THEN
    INSERT (Description, ShareAmount)
    VALUES (ct_value.Description, ct_value.ShareAmount);
GO

エラー:

メッセージ156、レベル15、状態1、行1キーワード「into」の近くの構文が正しくありません。メッセージ102、レベル15、状態1、行2'ct_value'の近くの構文が正しくありません。

4

2 に答える 2

1

試す

MERGE MyTable AS ct_current
USING (SELECT '0%' as Description, '0' as ShareAmount) ct_value
  ON ct_current.ShareAmount = ct_value.ShareAmount
WHEN MATCHED THEN 
  UPDATE SET ct_current.Description = '0%'
WHEN NOT MATCHED THEN
  INSERT (Description, ShareAmount)
  VALUES (ct_value.Description, ct_value.ShareAmount);
于 2011-01-27T20:34:21.590 に答える
0

SQL Server 2008 R2クライアントがあることに気付きましたが、サーバーはSQLServer2005です。

于 2011-01-27T21:39:13.353 に答える