select * from #result
. का इस्तेमाल करके आप कैसे बता सकते हैं कि टेबल के अंदर ऑर्डर क्या है? ? select
. में ऑर्डर की कोई गारंटी नहीं है क्वेरी।
हालाँकि, SQL Fiddle पर परिणाम भिन्न हैं। यदि आप गारंटी देना चाहते हैं कि परिणाम समान हैं, तो प्राथमिक कुंजी जोड़ें। फिर प्रविष्टि आदेश की गारंटी है:
CREATE TABLE MyTable(Name VARCHAR(50), SortOrder INT)
INSERT INTO MyTable SELECT 'b', 2 UNION ALL SELECT 'c', 3 UNION ALL SELECT 'a', 1 UNION ALL SELECT 'e', 5 UNION ALL SELECT 'd', 4
select top 0 * into result from MyTable;
alter table Result add id int identity(1, 1) primary key;
insert into Result(name, sortorder)
SELECT * FROM MyTable
ORDER BY SortOrder;
मैं अब भी select * from Result
. करने से घृणा करता हूं इसके बा। लेकिन हाँ, यह उन्हें SQL Server 2008 और 2012 दोनों में सही क्रम में लौटाता है। इतना ही नहीं, लेकिन क्योंकि SQL सर्वर गारंटी देता है कि प्राथमिक कुंजी उचित क्रम में डाली गई है, रिकॉर्ड भी सही क्रम में होने की गारंटी है यह मामला।
लेकिन । . . सिर्फ इसलिए कि रिकॉर्ड पृष्ठों पर एक विशेष क्रम में हैं इसका मतलब यह नहीं है कि उन्हें उस क्रम में पुनर्प्राप्त किया जाएगा, जिसमें कोई order by
नहीं होगा खंड।