কেন সিস্টেমে কলম এবং INFORMATION_SCHEMA.COLUMNS বিভিন্ন সংখ্যক কলাম প্রদর্শন করে


11

আমি একটি নির্দিষ্ট নামের সাথে কলামগুলি প্রদর্শন করতে দুটি পদ্ধতির চেষ্টা করছি:

  1. INFORMATION_SCHEMA.COLUMNS

    SELECT *
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE COLUMN_NAME='SUPPLIER_NAME';
    
  2. SYS.COLUMNS

    SELECT *
    FROM SYS.COLUMNS
    WHERE NAME='SUPPLIER_NAME'
    

প্রশ্নগুলি কেন বিভিন্ন আউটপুট প্রদর্শন করে?

এসএসএমএস স্ক্রিন দখল


আমার ডাটাবেসে আমার কাছে মাত্র 4 টি কলাম রয়েছে ut তবে সিসক্লমগুলি ব্যবহার করে এটি অসুস্থ হয় 5 রেকর্ড আমি না কেন?
বিনোথ _

3
INFORMATION_SCHEMA.COLUMNSশুধু একটি ওভার দৃশ্য sys.columnsযে INNER JOINগুলি sys.objectsটেবিল বা দেখুন বস্তুর প্রকারের পরিমিত এবং। আমার অনুমান যে আপনার রেকর্ডগুলির মধ্যে sys.columnsএকটি এই বিধিনিষেধে মুছে ফেলা হয়েছে।
মার্ক সিংকিনসন

1
তারা দুজনেই কিছুটা আলাদা। অনুগ্রহ করে পড়ুন mssqltips.com/sqlservertutorial/183/informationschemacolumns এবং msdn.microsoft.com/en-us/library/ms176106.aspx আমি বলতে হবে পোস্ট করার পূর্বে পঠিত ডকুমেন্টেশন থাকা উচিত
Shanky

উত্তর:


14

মধ্যে পার্থক্য INFORMATION_SCHEMA.COLUMNSএবং sys.columnsবস্তুর ধরনের তারা কভার হয়। INFORMATION_SCHEMA.COLUMNSসারণী এবং দর্শনগুলির মধ্যে সীমাবদ্ধ। এটি করে আপনি এর পিছনের কোডটি একবার দেখে নিতে পারেন:

EXEC sp_helptext [INFORMATION_SCHEMA.COLUMNS]

আপনি যেখানে ক্লজটির নীচে তাকান আপনি দেখতে পাবেন

o.type IN ('U', 'V')

এটি কেবলমাত্র টেবিল এবং দর্শনগুলিতে সীমাবদ্ধ।

এরপরে যদি আপনি সিস্টেমে কলামগুলির সংজ্ঞাটি দেখেন তবে আপনি দেখতে পাবেন যে এটিতে অন্যান্য বেশ কয়েকটি অবজেক্টের কলামগুলি অন্তর্ভুক্ত রয়েছে:

  • সারণী-মূল্যবান সমাবেশ কার্যাদি (এফটি)
  • ইনলাইন টেবিলের মূল্যবান এসকিউএল ফাংশন (আইএফ)
  • অভ্যন্তরীণ সারণী (আইটি)
  • সিস্টেম সারণী (গুলি)
  • সারণী-মূল্যবান এসকিউএল ফাংশন (টিএফ)

এটি চালান এবং অতিরিক্ত বস্তুটি কী এবং এটি কী ধরণের তা আপনি দেখতে সক্ষম হবেন।

SELECT OBJECT_SCHEMA_NAME(object_id), OBJECT_NAME(object_id), 
    OBJECTPROPERTYEX(object_id, 'BASETYPE'), *
FROM sys.columns
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.