sql - software - what is database




আপনি কিভাবে একটি টেবিলের কলামের নাম ফিরে না? (13)

2008 সংস্করণে একটি সহজ উপায় আছে কিনা নিশ্চিত না।

USE [Database Name]
SELECT COLUMN_NAME,* 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'YourTableName' AND TABLE_SCHEMA='YourSchemaName'

SQL সার্ভার 2008 ব্যবহার করে আমি কোনও টেবিলের কলামের নামগুলি কীভাবে ফেরত দেব? অর্থাৎ একটি টেবিলের মধ্যে এই কলাম-আইডি, নাম, ঠিকানা, দেশ রয়েছে এবং আমি এই তথ্য হিসাবে ফিরে আসতে চাই।


@ গুলজার নাজিমের উত্তরটি দুর্দান্ত হলেও, প্রশ্নে ডাটাবেসের নামটি অন্তর্ভুক্ত করা সম্ভবত সহজ, যা নিম্নলিখিত SQL দ্বারা অর্জন করা যেতে পারে।

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[email protected]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 st.NAME, sc.NAME, sc.system_type_id
FROM sys.tables st
INNER JOIN sys.columns sc ON st.object_id = sc.object_id
WHERE st.name LIKE '%Tablename%'

উপরের পরামর্শগুলির পরে এটি একটু সহজ মনে হচ্ছে কারণ এটি টেবিলের আইডি সনাক্ত করতে OBJECT_ID () ফাংশন ব্যবহার করে। যে আইডি সঙ্গে যে কোনো কলাম টেবিলের অংশ।

SELECT * 
  FROM syscolumns 
 WHERE id=OBJECT_ID('YOUR_TABLE') 

আমি যে কলামটি জানি তা দেখতে একটি সাধারণ সংস্করণটি আমি সাধারণত একটি নতুন সংস্করণের অংশ উপস্থিত কিনা তা দেখতে। এই বিভাগে {AND name = 'YOUR_COLUMN'} যোগ করার সাথে একই প্রশ্ন রয়েছে।

IF EXISTS (
        SELECT * 
          FROM syscolumns 
         WHERE id=OBJECT_ID('YOUR_TABLE') 
           AND name='YOUR_COLUMN'
        )
BEGIN
    PRINT 'Column found'
END

এই সবচেয়ে সহজ উপায়

exec sp_columns [tablename]

এটা চেষ্টা কর

select * from <tablename> where 1=2

...............................................


এটার মতো কিছু?

sp_columns @table_name=your table name

নিচের প্রথম প্রস্তাবিত প্রশ্নের মত মনে হচ্ছে তবে কিছুক্ষন আপনাকে এটিতে কাজ করার জন্য ডাটাবেসটি উল্লেখ করতে হবে। মনে রাখবেন যে TABLE_SCHEMA টি নির্দিষ্ট না করেও প্রশ্নটি কাজ করতে হবে:

SELECT COLUMN_NAME
FROM   YOUR_DB_NAME.INFORMATION_SCHEMA.COLUMNS
WHERE  TABLE_NAME = 'YOUR_TABLE_NAME' AND TABLE_SCHEMA = 'YOUR_DB_NAME'

যেহেতু SysColumns অব্যবহৃত , Sys.All_Columns ব্যবহার 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 = ID । এই ডাটাবেসের মধ্যে অনন্য। সিস্টেমের তথ্যের জন্য: user_type_id = system_type_id


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 [email protected]TableName
             order by ORDINAL_POSITION
    END
END

DECLARE @col NVARCHAR(MAX);
SELECT @col= COALESCE(@col, '') + ',' + COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS WHERE  Table_name = 'MxLocations';
SELECT @col;

set fmtonly on
select * from yourTable




tsql