2013-09-01 9 views
2

Я заметил, что, хотя я могу использовать% dictionary.compiledclass, чтобы получить таблицу с именами схем и именами таблиц, которые позволяют запрашивать их существование, я не могу сделать то же самое для столбцов. Мне еще предстоит найти команду, которая позволяет проверить, существует ли столбец или нет, или получить многочисленные имена столбцов, используя LIKE «префикс%».Как проверить столбец в таблице в Intersystems Cache SQL?

Есть ли даже такие вещи? Или альтернатива?

ответ

1

Вы можете использовать таблицу% Dictionary.CompiledProperty и столбец SqlFieldName этой таблицы. Например, чтобы узнать таблицы, которые имеют столбец «ColumnName» вы можете использовать этот запрос:

select parent->SqlTableName 
from %dictionary.compiledproperty 
where SqlFieldName='ColumnName' 
+0

Спасибо! Проблема здесь заключается в том, что я не могу сопоставлять таблицы и столбцы; то есть, если бы у меня был столбец «Контент» в нескольких таблицах, я мог бы сказать, что «Контент» существует, но не в какой таблице. –

+0

Вы можете выполнить такой запрос: 'select parent-> SqlTableName from% dictionary.compiledproperty где SqlFieldName = 'Column-name'' – adaptun

1

Выполнить запрос: выберите * из% dictionary.compiledproperty Где родитель = «TableName» и SqlFieldName = «ColumnName» Проверить количество строк, 0 не существует