Sql Server 2008行为异常。当我执行存储过程时,输出的顺序与我直接为相同参数执行语句的顺序不同。我不确定我做错了什么。请帮忙!!!当直接执行语句和从存储过程执行语句时会有不同的输出?
这是一个简单的查询结构并解释它的作用。
Top 10 Query1
Union all
Top 10 Query2
Order by name
a。当你在proc中运行它时: 从查询1获取前10,然后从查询2获取前10,最后它执行命令
b。当您打开查询时: 从查询1开始应用订单,然后取得前10名,并从查询2开始应用订单,然后取得前10名。这很奇怪,它用同样的方法做了2件不同的事情查询。
Output from Procedure
Name Cost Price
A2 Bag Stickerss DO NOT STOCKTAKES 24
aaaaaa 5
aaaaaa 7.5
Output from Query
Name Cost Price
A2 Bag Stickerss DO NOT STOCKTAKES 24
A2 Bag Stickerss DO NOT STOCKTAKES 27
aaaaaa 5
aaaaaa 7.5
aaaaaa 9
你在你的存储过程,你的即席查询有一个ORDER'条款BY'?如果没有任何'ORDER BY',**没有**担保订单 - 你可以得到任何东西 – 2011-04-04 15:38:23
Hi Marc_s,这两段代码都有order by子句。 – 2011-04-04 15:40:50
一个相同的ORDER BY?那么你应该得到相同的结果....(除了那些没有排序的列)。你可以**向我们展示**查询吗? – 2011-04-04 15:41:54