আমি একটি টেবিলের সমস্ত কলামের নাম জানতে চাই। আমি কীভাবে এটি করতে পারি তা খুঁজে পেয়েছি:
তবে আমার জানা দরকার: এটি কীভাবে মাইক্রোসফ্ট এসকিউএল সার্ভারে করা যেতে পারে (আমার ক্ষেত্রে ২০০৮)?
SELECT TOP 0 * FROM my_tableতার জন্য কম কীস্ট্রোক রয়েছে
আমি একটি টেবিলের সমস্ত কলামের নাম জানতে চাই। আমি কীভাবে এটি করতে পারি তা খুঁজে পেয়েছি:
তবে আমার জানা দরকার: এটি কীভাবে মাইক্রোসফ্ট এসকিউএল সার্ভারে করা যেতে পারে (আমার ক্ষেত্রে ২০০৮)?
SELECT TOP 0 * FROM my_tableতার জন্য কম কীস্ট্রোক রয়েছে
উত্তর:
আপনি তথ্য স্কিমার দর্শনগুলি অনুসন্ধান করে এই তথ্য এবং আরও অনেক কিছু পেতে পারেন ।
এই নমুনা ক্যোয়ারী:
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Customers'
এই সমস্ত ডিবি বস্তুর উপর তৈরি করা যেতে পারে:
Nortwind....)
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = N'tableName';এটি আমার জন্য কাজ করে
TABLE_SCHEMA = '?' AND TABLE_NAME = '?'লোকালহোস্টে থাকাকালীন আমাকে ব্যবহার করতে হয়েছিল এবং আমার একই নামের সাথে একাধিক টেবিল রয়েছে তবে বিভিন্ন ডাটাবেসে।
আপনি সঞ্চিত পদ্ধতি ব্যবহার করতে পারেন sp_collines যা প্রদত্ত টেবিলের জন্য সমস্ত কলামের সাথে সম্পর্কিত তথ্য ফেরত দেবে। আরও তথ্য এখানে পাওয়া যাবে http://msdn.microsoft.com/en-us/library/ms176077.aspx
আপনি এটি এসকিউএল কোয়েরি দ্বারাও করতে পারেন। এর মতো কিছু জিনিসকে সহায়তা করা উচিত:
SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('dbo.yourTableName')
বা তারতম্যটি হ'ল:
SELECT o.Name, c.Name
FROM sys.columns c
JOIN sys.objects o ON o.object_id = c.object_id
WHERE o.type = 'U'
ORDER BY o.Name, c.Name
এটি সমস্ত টেবিল থেকে সমস্ত কলাম পায়, টেবিলের নাম অনুসারে অর্ডার করে কলামের নাম অনুসারে।
select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='tableName'
এটি থেকে পাওয়ার চেয়ে এটি ভাল sys.columnsকারণ এটি DATA_TYPEসরাসরি দেখায় ।
AND TABLE_SCHEMA = 'schemaName'মধ্যে WHEREদফা।
JOIN sys.types t on c.system_type_id = t.system_type_idএবং যুক্ত করতে পারেন । t.name
আপনি sp_helpএসকিউএল সার্ভার 2008 ব্যবহার করতে পারেন ।
sp_help <table_name>;
উপরের কমান্ডের জন্য কীবোর্ড শর্টকাট: সারণির নাম নির্বাচন করুন (যেমন এটি হাইলাইট করুন) এবং ALT+ টিপুন F1।
আপনি মাইএসকিউএলে INFORMATION_SCHEMA ব্যবহার না করে কলামের নাম এবং সমস্ত বিশদ জানতে এই কোয়েরিটি লিখতে পারেন:
SHOW COLUMNS FROM database_Name.table_name;
--This is another variation used to document a large database for conversion (Edited to --remove static columns)
SELECT o.Name as Table_Name
, c.Name as Field_Name
, t.Name as Data_Type
, t.length as Length_Size
, t.prec as Precision_
FROM syscolumns c
INNER JOIN sysobjects o ON o.id = c.id
LEFT JOIN systypes t on t.xtype = c.xtype
WHERE o.type = 'U'
ORDER BY o.Name, c.Name
--In the left join, c.type is replaced by c.xtype to get varchar types
SELECT column_name, data_type, character_maximum_length, table_name,ordinal_position, is_nullable
FROM information_schema.COLUMNS WHERE table_name LIKE 'YOUR_TABLE_NAME'
ORDER BY ordinal_position
এই SO প্রশ্নটি নিম্নলিখিত পদ্ধতির অনুপস্থিত:
-- List down all columns of table 'Logging'
select * from sys.all_columns where object_id = OBJECT_ID('Logging')
এটি পরীক্ষা করে দেখব কিনা দেওয়া tableহয় বেজ ছক ।
SELECT
T.TABLE_NAME AS 'TABLE NAME',
C.COLUMN_NAME AS 'COLUMN NAME'
FROM INFORMATION_SCHEMA.TABLES T
INNER JOIN INFORMATION_SCHEMA.COLUMNS C ON T.TABLE_NAME=C.TABLE_NAME
WHERE T.TABLE_TYPE='BASE TABLE'
AND T.TABLE_NAME LIKE 'Your Table Name'
আপনি এটি চেষ্টা করে দেখতে পারেন his এটি সমস্ত কলামের নাম তাদের নিজ নিজ ডেটা ধরণের দিয়ে দেয়।
desc <TABLE NAME> ;
আপনি এই ক্যোয়ারী ব্যবহার করতে পারেন
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME like N'%[ColumnName]%' and TABLE_NAME = N'[TableName]'
SELECT c.Name
FROM sys.columns c
JOIN sys.objects o ON o.object_id = c.object_id
WHERE o.object_id = OBJECT_ID('TABLE_NAME')
ORDER BY c.Name
যুক্তিযুক্ত আরও স্বজ্ঞাত অন্য একটি বিকল্প হ'ল:
SELECT [name]
FROM sys.columns
WHERE object_id = OBJECT_ID('[yourSchemaType].[yourTableName]')
এটি আপনাকে একক কলামে আপনার সমস্ত কলামের নাম দেয়। আপনি যদি অন্য মেটাডেটা সম্পর্কে চিন্তা করেন তবে আপনি সম্পাদনা নির্বাচন করুন নির্বাচন করতে পারেন SELECT *।
উত্তরগুলির সংক্ষিপ্তসার
আমি এটি করার বিভিন্ন রকম উত্তর এবং উপায় দেখতে পাচ্ছি তবে এটিতে ঘষা রয়েছে এবং এটিই objective।
হ্যাঁ, উদ্দেশ্য। আপনি যদি only knowকলামের নামগুলি করতে চান তবে আপনি ব্যবহার করতে পারেন
SELECT * FROM my_table WHERE 1=0
or
SELECT TOP 0 * FROM my_table
তবে আপনি যদি useকোথাও এই কলামগুলিতে চান বা কেবল manipulateতাদের বলতে চান তবে উপরের দ্রুত অনুসন্ধানগুলি কোনও কাজে আসবে না। আপনার ব্যবহার করা দরকার
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = N'Customers'
আমাদের আরও কিছু নির্দিষ্ট কলামগুলি জানার জন্য যেখানে আমাদের অনুরূপ কিছু কলামের প্রয়োজন
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME like N'%[ColumnName]%' and TABLE_NAME = N'[TableName]'
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'name_of_your_table'
SELECT * FROM my_table WHERE 1=0