উত্তর:
2008 সংস্করণে আরও সহজ উপায় আছে কিনা তা নিশ্চিত নন।
USE [Database Name]
SELECT COLUMN_NAME,*
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'YourTableName' AND TABLE_SCHEMA='YourSchemaName'
এই সবচেয়ে সহজ উপায়
exec sp_columns [tablename]
এটার মতো কিছু?
sp_columns @table_name=your table name
একটি পদ্ধতি হ'ল সিস্টোলমগুলি জিজ্ঞাসা করা:
select
syscolumns.name as [Column],
syscolumns.xusertype as [Type],
sysobjects.xtype as [Objtype]
from
sysobjects
inner join
syscolumns on sysobjects.id = syscolumns.id
where sysobjects.xtype = 'u'
and sysobjects.name = 'MyTableName'
order by syscolumns.name
Objtype
কলামটি রিডানড্যান্ট খুঁজে পাই , যদিও :)
উপরের পরামর্শগুলি পরে এটি কিছুটা সহজ বলে মনে হচ্ছে কারণ এটি সারণীর আইডি সনাক্ত করতে OBJECT_ID () ফাংশনটি ব্যবহার করে । এই আইডি সহ যে কোনও কলামটি টেবিলের অংশ।
SELECT *
FROM syscolumns
WHERE id=OBJECT_ID('YOUR_TABLE')
আমি জানি যে কলামটি নতুন সংস্করণের অংশ রয়েছে তা দেখতে আমি সাধারণত অনুরূপ ক্যোরি ব্যবহার করি। এটি যেখানে use ও নাম = 'YOUR_COLUMN'} যুক্ত করার সাথে একই প্রশ্ন।
IF EXISTS (
SELECT *
FROM syscolumns
WHERE id=OBJECT_ID('YOUR_TABLE')
AND name='YOUR_COLUMN'
)
BEGIN
PRINT 'Column found'
END
এটা চেষ্টা কর
select * from <tablename> where 1=2
...............................................
WHERE 1=2
ফিরে আসবে এবং এটি কলামের মেটা-ডেটা ফিরিয়ে আনবে। যদি কোনও প্রোগ্রামেটিক ইন্টারফেস যেমন ওডিবিসি ব্যবহার করে থাকেন, তবে এই কলামের তথ্য প্রোগ্রামের মধ্যে কার্সার অবজেক্ট থেকে তালিকা / অ্যারে হিসাবে অ্যাক্সেসযোগ্য, যা আমি খুঁজছিলাম। খাঁটি এসকিউএল প্রসঙ্গে এটি বোধগম্য নয় তবে পাইথন / জাভা / সি / ইত্যাদির মাধ্যমে কোনও ডাটাবেসের সাথে সংযোগ করার সময় এটি একটি সংযোগ পদ্ধতি approach
নিম্নলিখিতটি উপরে প্রস্তাবিত প্রথম প্রশ্নের মতো মনে হচ্ছে তবে কিছুক্ষণ আপনাকে এটি ব্যবহার করতে ডাটাবেস নির্দিষ্ট করতে হবে। নোট করুন যে কোয়ালিটিতে TABLE_SCHEMA উল্লেখ না করেও কাজ করা উচিত:
SELECT COLUMN_NAME
FROM YOUR_DB_NAME.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'YOUR_TABLE_NAME' AND TABLE_SCHEMA = 'YOUR_DB_NAME'
কেন শুধু এই চেষ্টা করবেন না:
টেবিলের উপর ডান ক্লিক করুন -> স্ক্রিপ্ট সারণী যেমন -> তৈরি করুন -> নতুন ক্যোয়ারী সম্পাদক উইন্ডো?
কলামগুলির সম্পূর্ণ তালিকা স্ক্রিপ্টে দেওয়া আছে। এটি অনুলিপি করুন এবং প্রয়োজনীয় ক্ষেত্রগুলি ব্যবহার করুন।
"I want to return these as data"
, যখন আপনার উত্তরটি মানগুলি পাবে, সম্ভবত ওপি রান-টাইমে ডেটা চায়।
USE[Database]
SELECT TABLE_NAME,TABLE_SCHEMA,[Column_Name],[Data_type]
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA='dbo'
CREATE PROCEDURE [dbo].[Usp_GetColumnName]
@TableName varchar(50)
AS
BEGIN
BEGIN
SET NOCOUNT ON
IF (@TableName IS NOT NULL)
select ORDINAL_POSITION OrderPosition,COLUMN_NAME ColumnName from information_schema.columns
where table_name =@TableName
order by ORDINAL_POSITION
END
END
আমি নিশ্চিত না যে সাইকোলেমস কোডলিড মানটি 'অর্ডিনালপোসিটিউশন' মানটি এসপি_কলামগুলির অংশ হিসাবে ফিরে এসেছে, তবে এর পরে আমি কীভাবে এটি ব্যবহার করছি - আশা করি আমি ভুল তথ্য দিচ্ছি না ...
আমি যে অন্য উত্তরগুলি পেয়েছি তার মধ্যে কিছুটা ভিন্নতা এখানে রয়েছে - আমি এটি ব্যবহার করি কারণ আমার আবেদনের ক্ষেত্রে সারণীর কলামের 'অবস্থান' বা ক্রমটি গুরুত্বপূর্ণ - আমাকে মূলত জানতে হবে 'কলাম (এন) কী বলে' ? '
স্প_কলামগুলি সম্পূর্ণ গুচ্ছ বহিরাগত স্টাফ দেয়, এবং আমি টি-এসকিউএল ফাংশনগুলির তুলনায় একটি নির্বাচন দিয়ে হ্যান্ডিয়ার হয়ে থাকি, তাই আমি এই পথে চলেছি:
select
syscolumns.name,
syscolumns.colid
from
sysobjects, syscolumns
where
sysobjects.id = syscolumns.id and
sysobjects.xtype = 'u' and
sysobjects.name = '<YOUR_TABLE>'
order by syscolumns.colid
যদিও @ গুলজার নাজিমের উত্তর দুর্দান্ত, কোয়েরিতে ডাটাবেসের নাম অন্তর্ভুক্ত করা সম্ভবত সহজ , যা নিম্নলিখিত এসকিউএল দ্বারা অর্জন করা যেতে পারে।
SELECT COLUMN_NAME, *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'you-table-name' AND TABLE_CATALOG='your-database-name'
আপনি সমস্ত কলামের নাম মুদ্রণের জন্য নীচের কোডটি ব্যবহার করতে পারেন; আপনি যে কোনও ফর্ম্যাটে আপনার পছন্দ মতো অন্যান্য বিবরণ মুদ্রণের জন্য কোডও সংশোধন করতে পারেন
declare @Result varchar(max)='
'
select @Result=@Result+''+ColumnName+'
'
from
(
select
replace(col.name, ' ', '_') ColumnName,
column_id ColumnId
from sys.columns col
join sys.types typ on
col.system_type_id = typ.system_type_id AND col.user_type_id = typ.user_type_id
where object_id = object_id('tblPracticeTestSections')
) t
order by ColumnId
print @Result
আউটপুট
column1
column2
column3
column4
টেবিলটি প্রিন্ট করতে একই কোড ব্যবহার করতে এবং এর কলামের নাম সি # শ্রেণি হিসাবে নীচের কোডটি ব্যবহার করুন:
declare @TableName sysname = '<EnterTableName>'
declare @Result varchar(max) = 'public class ' + @TableName + '
{'
select @Result = @Result + '
public static string ' + ColumnName + ' { get { return "'+ColumnName+'"; } }
'
from
(
select
replace(col.name, ' ', '_') ColumnName,
column_id ColumnId
from sys.columns col
join sys.types typ on
col.system_type_id = typ.system_type_id AND col.user_type_id = typ.user_type_id
where object_id = object_id(@TableName)
) t
order by ColumnId
set @Result = @Result + '
}'
print @Result
আউটপুট:
public class tblPracticeTestSections
{
public static string column1 { get { return "column1"; } }
public static string column2{ get { return "column2"; } }
public static string column3{ get { return "column3"; } }
public static string column4{ get { return "column4"; } }
}
আমি কেবল মার্টিন স্মিথের মতো একটি কোয়েরি ব্যবহার করেছি, কেবলমাত্র ছোট্ট:
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'YourTableName'
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'TableName'
যেহেতু সিসকলামগুলি অবচিত করা হয়েছে , তাই ব্যবহার করুন Sys.All_Columns
:
Select
ObjectName = Object_Name(Object_ID)
,T.Name
,C.*
,T.*
From
Sys.All_Columns C
Inner Join Sys.Types T On T.User_Type_Id = C.User_Type_Id
Where [Object_ID] = Object_ID('Sys.Server_Permissions')
--Order By Name Asc
Select * From Sys.Types
user_type_id = ID
ধরণের ফলন হবে । এটি ডাটাবেসের মধ্যে অনন্য। সিস্টেম ডেটা ধরনের জন্য: user_type_id = system_type_id
।
DECLARE @col NVARCHAR(MAX);
SELECT @col= COALESCE(@col, '') + ',' + COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS WHERE Table_name = 'MxLocations';
SELECT @col;
যদি আপনি পোস্টগ্রিস্কল নিয়ে কাজ করছেন তবে একাধিক স্কিমাতে একই নামের সাথে টেবিল থাকতে পারে এমন ক্ষেত্রে নীচের ক্যোয়ারী প্রয়োগ করুন
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name = 'your_table_name' AND table_schema = 'your_schema_name’;
set fmtonly on
select * from yourTable