it-swarm.asia

كيف يمكنني الحصول على أسماء الأعمدة من جدول في SQL Server؟

أرغب في الاستعلام عن اسم جميع أعمدة الجدول. لقد وجدت كيفية القيام بذلك في:

لكنني بحاجة إلى معرفة: كيف يمكن القيام بذلك في Microsoft SQL Server (2008 في حالتي)؟

587
odiseh

يمكنك الحصول على هذه المعلومات وأكثر من ذلك بكثير عن طريق الاستعلام عن طرق عرض مخطط المعلومات .

نموذج الاستعلام هذا:

SELECT *
FROM Northwind.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Customers'

يمكن إجراؤها على كل كائنات قاعدة البيانات هذه:

718
anon

يمكنك استخدام sp_columns الإجراء المخزن الذي سيعود المعلومات المتعلقة بجميع الأعمدة لجدول معين. يمكن العثور على مزيد من المعلومات هنا http://msdn.Microsoft.com/en-us/library/ms176077.aspx

يمكنك أيضًا القيام بذلك عن طريق استعلام SQL. شيء من هذا القبيل يجب أن يساعد -

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

هذا يحصل على جميع الأعمدة من جميع الجداول ، مرتبة حسب اسم الجدول ثم على اسم العمود.

180
Arnkrishn
select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='tableName'

هذا أفضل من الحصول على من sys.columns لأنه يظهر DATA_TYPE مباشرة.

134
Limin

يمكنك استخدام sp_help في SQL Server 2008.

sp_help <table_name>;

اختصار لوحة المفاتيح للأمر أعلاه: حدد اسم الجدول (أي قم بتمييزه) واضغط ALT+F1.

51
mr_eclair

باستخدام هذا الاستعلام ، تحصل على الجواب:

select Column_name 
from Information_schema.columns 
where Table_name like 'table name'
42
KuldipMCA

يمكنك كتابة هذا الاستعلام للحصول على اسم العمود وجميع التفاصيل دون استخدام INFORMATION_SCHEMA في MySql:

SHOW COLUMNS FROM database_Name.table_name;
29
Sachin Parse

- هذا هو شكل آخر يستخدم لتوثيق قاعدة بيانات كبيرة للتحويل (تم التعديل إلى - إزالة الأعمدة الثابتة)

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

- في الصلة اليسرى ، يتم استبدال c.type بـ c.xtype للحصول على أنواع varchar

24
Doc
SELECT name
FROM sys.columns
WHERE object_id = OBJECT_ID('TABLE_NAME')

// TABLE_NAME هو جدولك

18
bstricks
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
15
Petko Petkov

يمكنك تجربة هذا. وهذا يعطي جميع أسماء الأعمدة مع أنواع البيانات الخاصة بها.

desc <TABLE NAME> ;
11
ishaan arora

هذا SO يفتقد إلى الأسلوب التالي:

-- List down all columns of table 'Logging'
select * from sys.all_columns where object_id = OBJECT_ID('Logging')
11
NeverHopeless

سوف يتحقق ما إذا كان المعطى 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'
9
Luv

فقط قم بتشغيل هذا الأمر

EXEC sp_columns 'Your Table Name'
9
Hardeep Singh

يمكنك استخدام هذا الاستعلام

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME like N'%[ColumnName]%' and TABLE_NAME = N'[TableName]'
5
reza akhlaghi
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
4
Mohamed Raguig Labzour

أحد الخيارات الأخرى الأكثر جدوى هو:

SELECT [name] 
FROM sys.columns 
WHERE object_id = OBJECT_ID('[yourSchemaType].[yourTableName]') 

يمنحك هذا جميع أسماء الأعمدة في عمود واحد. إذا كنت تهتم بالبيانات الوصفية الأخرى ، فيمكنك تغيير تحرير SELECT STATEMENT TO SELECT *.

3
Samuel Nde
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'name_of_your_table'
2
onavascuez