2014-01-31 8 views
2

мне нужно получить имена столбцов наряду с другой информацией, какКак получить имена столбцов и другую информацию из таблицы SqlServer?

DATA_TYPE, CHARACTER_MAXIMUM_LENGTH ,NUMERIC_PRECISION, NUMERIC_SCALE, IS_NULLABLE, IS_IDENTITY,ORDINAL_POSITION , Primary Key from table 

меня использовать следующий запрос для этого

Select C.COLUMN_NAME as 'ColumnName', 
     C.DATA_TYPE as 'Datatype', 
     C.CHARACTER_MAXIMUM_LENGTH as 'MaxLength', 
     C.NUMERIC_PRECISION as 'Precision', 
     C.NUMERIC_SCALE as 'Scale', 
     C.IS_NULLABLE as 'Is_NULL', 
     C.IS_IDENTITY, 
     C.ORDINAL_POSITION as 'Position', 
     isnull(Z.CONSTRAINT_NAME,0) as 'PrimaryKey' 
From INFORMATION_SCHEMA.COLUMNS As C 
Outer Apply (
    Select CCU.CONSTRAINT_NAME 
    From INFORMATION_SCHEMA.TABLE_CONSTRAINTS As TC 
    Join INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE As CCU 
     On CCU.CONSTRAINT_NAME = TC.CONSTRAINT_NAME 
    Where TC.TABLE_SCHEMA = C.TABLE_SCHEMA And 
      TC.TABLE_NAME = C.TABLE_NAME And 
      TC.CONSTRAINT_TYPE = 'PRIMARY KEY' And 
      CCU.COLUMN_NAME = C.COLUMN_NAME) As Z 
Where C.TABLE_NAME = 'tablename' 

вопрос с C.IS_IDENTITY, если я удалить его, то запрос отлично работает

Пожалуйста Предложите мне, как я могу получить информацию тождественное с этим запросом

ответ

2

Для IS_IDENTITY используйте приведенное ниже выражение в выбранном запросе

COLUMNPROPERTY(object_id('tablename'), C.COLUMN_NAME, 'IsIdentity') 
+0

@ user3256340 отметьте этот ответ, если это поможет –

Смежные вопросы