0

十分に文書化されたエラーが表示されます:

SELECT DISTINCT が指定されている場合は、ORDER BY 項目が選択リストに含まれている必要があります。

これが私のSQLステートメントです:

INSERT INTO PropertyList
            (PropertyID, Initials)
SELECT DISTINCT P.PropertyID, "vSTEBCodes"
FROM Property AS P INNER JOIN ValiditySTEBCodes AS VC 
              ON P.ControlNumber=VC.ControlNumber

ご覧のとおり、ORDER BY ステートメントは見えません。おそらくそこには暗黙の ORDER BY がどこかにあるのでしょうが、私には見えません。

SQL Server 2008 バックエンドにリンクされている MS Access のリンク テーブルに対してこのステートメントを実行しています。Access 2002 のフル バージョンから実行すると、問題なく実行されます。Access 2000 ランタイムから実行しようとすると、次のエラーが表示されます。

Access では、クエリを ODBC ソース (特に複数レコードの INSERT と UPDATE) に転送する前に、バックグラウンドでクエリを書き直す傾向があることを知っています。私はそれが問題かもしれないと考えています。

4

1 に答える 1

1

コメントからコンパイルして、試してください:

INSERT INTO dbo.PropertyList(PropertyID, Initials)
  SELECT P.PropertyID, Initials = 'vSTEBCodes' -- alias and single quotes
  FROM dbo.Property AS P -- always use schema prefix
  INNER JOIN dbo.ValiditySTEBCodes AS VC 
  ON P.ControlNumber = VC.ControlNumber
  GROUP BY P.PropertyID  -- instead of DISTINCT
  ORDER BY P.PropertyID; -- maybe overrides Access stupidity
于 2013-03-19T20:47:29.797 に答える