কীভাবে কোনও সারণীতে কলামগুলির ক্রম সনাক্ত করতে হয়


9

আমার সারণির সংজ্ঞা ক্রমে একটি সারণী থেকে কলামগুলি তালিকাবদ্ধ করতে হবে:

select * from syscolumns
where id = object_id('MyTable')
--order by colid

syscolumnsসারণী পরীক্ষা করে দুটি কলাম প্রাসঙ্গিক দেখায়: colidএবং colorderসিসক্লমগুলিতে এমএসডিএন নিবন্ধটি বলে:

colid    | smallint | Column or parameter ID.
colorder | smallint | Identified for informational purposes only. 
                    | Not supported. Future compatibility is not guaranteed.

আমি দৌড়ানোর চেষ্টা করেছি

select * from syscolumns where colorder <> colid

যা কোনও সারি দেয় নি, এবং এটি আমাকে ভাবায় যে এই কলামগুলির বেশিরভাগ সময় একই মান রয়েছে।

এটি দেখতে পাওয়া যায় যে কলিড ব্যবহার করা সবচেয়ে নিরাপদ বাজি। তবে আমি জানতে আগ্রহী হব: এই দুটি কলামের মধ্যে কি তফাত আছে এবং যদি থাকে তবে এই পার্থক্যটি কী?

এছাড়াও এমএসডিএন নিবন্ধটি নিশ্চিত করে না, যে কোলিডটি টেবিল সংজ্ঞাটির ক্রম প্রতিফলিত করে। যদিও এটি অনুমান করা যুক্তিযুক্ত যে এটিই কেস, তবে আপনি কি দয়া করে আমাকে জানান, যদি আপনি নিশ্চিত হন যে এটি কেস, তবে আপনি কীভাবে জানবেন যে এটি?

উত্তর:


11

আপনার sys.columnsক্যাটালগ ভিউটি ব্যবহার করা উচিত । syscolumnsশুধুমাত্র পিছনের সামঞ্জস্যের জন্য অন্তর্ভুক্ত করা হয়। এটি সত্যিই একটি এসকিউএল সার্ভার 2000 সিস্টেম সারণী যা এসকিউএল সার্ভার ২০০৮ আর 2 এ ব্যবহার করা উচিত নয়।

select *
from sys.columns
where object_id = object_id('MyTable')
order by column_id

এটি আপনার কলামগুলির ক্রমটি ফিরিয়ে আনবে। নোট, যদিও, এই কলাম আইডি এর অনুক্রমিক নাও হতে পারে।


7

আমি INFORMATION_SCHEMA দর্শনগুলিও দিতে চাই। এগুলি এএনএসআই স্ট্যান্ডার্ড এবং এটি সমর্থন করে এমন ডাটাবেসগুলির জন্য ক্রস ডাটাবেসকে কাজ করে।

SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'MyTable'
ORDER BY ORDINAL_POSITION

3

আপনি যদি ক্রমানুসারে কলামিডগুলি চান / চান তবে আমি এটি ব্যবহার করেছি:

select 
    ROW_NUMBER() OVER (PARTITION BY OBJECT_NAME(object_id) ORDER BY Column_ID) as ColumnIDSeq,
    *
from sys.columns
where OBJECT_NAME(object_id) = 'MyTable'
order by column_id
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.