Как я могу проверить, является ли слово зарезервированным ключевым словом в Sybase (нельзя использовать в качестве имени столбца)? - PullRequest
1 голос
/ 22 марта 2012

Вопрос:

  • Как (программно) получить полный список зарезервированных ключевых слов в Sybase?

    В частности, те, которые не могут быть именами столбцов в таблице.

  • Альтернативно, как я могу проверить, является ли специфичный идентификаторзарезервированное ключевое слово в Sybase?

Справочная информация:

У меня есть процесс, который берет разделенный запятыми файл с заголовками и загружает в временную таблицу вSybase.

Цель состоит в том, чтобы имена столбцов временной таблицы совпадали с именами столбцов файлов.

Это не удастся, если в файле есть столбец, названный в честь зарезервированного ключевого слова.

Я бы хотел уловить этот сценарий ПЕРЕД тем, что оператор CREATE TABLE завершился неудачей.

Примечания:

  1. Яищем Sybase-независимое от версии решение .

    Поэтому "скопировать все слова в справочном руководстве по Sybase (например, this для v.12.5) НЕ верный ответ. Я прекрасно знаю, что могу это сделать. Но это не удастсяработать в Sybase 15 без изменения списка ключевых слов вручную.

  2. Если решение существует, но недоступно в более ранних версиях Sybase, мне нужно что-то совместимое с Sybase 12.5 и более поздними

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

Ответы [ 2 ]

1 голос
/ 22 марта 2012

Нашли способ после еще погуглить!

 select name from master..spt_values where type="W"
1 голос
/ 22 марта 2012

Во-первых, включите "quoted_identifier" в вашей конфигурации (включите quoted_identifier). Затем экранируйте все имена столбцов в двойных кавычках.

Таким образом, вам не нужно узнавать, какие из них являются зарезервированными словами, и все столбцы будут иметь имена, которые, как вы ожидаете, будут иметь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...