我收到了错误记录的错误:
如果指定了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,但我看不到它。
我正在针对MS Access中链接到SQL Server 2008后端的链接表运行此语句。当我从完整版本的Access 2002运行它时,它运行没有问题。如果我尝试从Access 2000运行时运行它,我收到显示的错误。
我知道Access倾向于在将查询转发到ODBC源(特别是多记录INSERT和UPDATE)之前在后台重写查询。我想这可能是个问题。
答案 0 :(得分: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