আমি একটি টেবিলের সমস্ত কলামের নাম জানতে চাই। আমি কীভাবে এটি করতে পারি তা খুঁজে পেয়েছি:
তবে আমার জানা দরকার: এটি কীভাবে মাইক্রোসফ্ট এসকিউএল সার্ভারে করা যেতে পারে (আমার ক্ষেত্রে ২০০৮)?
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