【发布时间】:2023-03-11 22:40:01
【问题描述】:
我们正在从 SQL Server 2008 迁移到 SQL Server 2012,并立即注意到我们所有的表值函数不再以正确排序的顺序传递它们的临时表内容。
代码:
INSERT INTO @Customer
SELECT Customer_ID, Name,
CASE
WHEN Expiry_Date < GETDATE() then 1
WHEN Expired = 1 then 1
ELSE 0
END
from Customer **order by Name**
在 SQL Server 2008 中,此函数返回按名称排序的客户。在 SQL Server 2012 中,它返回未排序的表。 “order by” 在 SQL 2012 中被忽略。
我们是否必须重新编写所有函数以包含sort_id,然后在主应用程序中调用它们时对其进行排序,还是有一个简单的解决方法??
【问题讨论】:
-
是的,插入仍然出现在计划中,但未反映在结果中。
标签: sql sql-server sql-server-2012 sql-order-by