SQL-запрос для получения значения точности столбца - PullRequest
4 голосов
/ 06 сентября 2011

Мне нужен SQL-запрос, который получает значение точности для определенных столбцов. В основном меня интересует столбец с десятичным типом, и мне нужно значение точности для него.

Я понимаю, что это возможно в определенных версиях и поставщиках серверов баз данных. Было бы неплохо, если бы вы могли перечислить несколько из них.

Ответы [ 5 ]

5 голосов
/ 06 сентября 2011

для сервера sql:

select precision from sys.columns where name='<column_name>' 

для оракула:

select data_precision from all_tab_columns  where column_name = '<columnName>'
4 голосов
/ 06 сентября 2011

Для SQL Server вы также можете использовать NUMERIC_PRECISION в INFORMATION_SCHEMA.COLUMNS.

Я предполагаю, что это вполне может быть переносимым.

3 голосов
/ 06 сентября 2011

Oracle:

SELECT DATA_LENGTH, DATA_PRECISION
FROM ALL_TAB_COLUMNS
WHERE TABLE_NAME = :TableName
AND COLUMN_NAME = :ColumnName

Firebird (+ Interbase):

SELECT
       rdb$field_scale,
       rdb$field_precision
FROM   rdb$relations r
       JOIN rdb$relation_fields rf
         ON rf.rdb$relation_name = r.rdb$relation_name
       JOIN rdb$fields fld
         ON rf.rdb$field_source = fld.rdb$field_name
WHERE  r.rdb$relation_name = :TableName
       AND rf.rdb$field_name = :ColumnName

MySql (не проверено!):

SELECT
  NUMERIC_PRECISION,  NUMERIC_SCALE
FROM
  INFORMATION_SCHEMA.COLUMNS
WHERE
  TABLE_NAME  = :TableName AND
  COLUMN_NAME = :ColumnName
1 голос
/ 06 сентября 2011

Для SQL Server это:

select object_name(object_id), name, precision from sys.columns
0 голосов
/ 06 сентября 2011

Для FireBird и InterBase

SELECT 
  RDB$FIELD_PRECISION, RDB$FIELD_SCALE
FROM RDB$FIELDS
WHERE RDB$FIELD_NAME = columnsDomainName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...