我们已将数据库从MS SQL 2008迁移到SQL2012。 迁移后,某些查询无效。 下面的查询是使用SQL2008和SQL2000,但不适用于SQL2012
SELECT DISTINCT Field1, Field1+ ' - ' + Field1 as Field1 FROM TABLE ORDER BY Field1
Msg 209,Level 16,State 1,Line 1 不明确的列名'MCH_GROUP'。
我知道我们可以修改查询但我们有很多应用程序。 我认为在sql 2012上应该有一个路径或设置来执行这个查询而没有任何错误。
答案 0 :(得分:2)
错误来自order by
子句。
服务器无法区分两个Field1列。
请为第二栏提供不同的名称。
SELECT DISTINCT Field1,
Field1+ ' - ' + Field1 as Field2
FROM TABLE
ORDER BY Field1
Another Eg:
SELECT DISTINCT [FirstName],
[FirstName] + ' - ' + [FirstName] As [TwiceFirstName]
FROM [dbo].[DimCustomer]
ORDER BY [FirstName]
答案 1 :(得分:0)
SELECT DISTINCT Field1, Field1+ ' - ' + Field1 as Field2 FROM TABLE ORDER BY Field1
您调用了2个相同的字段,然后您通过...来混淆订单
答案 2 :(得分:0)
试试这个,
SELECT DISTINCT Field1, Field1+ ' - ' + Field1 as CalcualtedField FROM TABLE ORDER BY Field1
答案 3 :(得分:0)
如果绝对无法更改查询(您应该这样做),请将数据库的兼容级别设置为SQL2000。右键单击数据库,属性,选项,将Compatibility level
设置为SQL Server 2000 (80)