Могу ли я использовать скалярную функцию в качестве имени таблицы в команде управления таблицей .create? - PullRequest
0 голосов
/ 26 марта 2020

У меня есть сохраненная функция, которая генерирует идентификационное имя на основе набора параметров, таких как:

.create function 
with (docstring = 'Returns the table name for the specified data log provider.')
GetTableName(param1: string, param2: string)
{
    // Some string cleansing and concatenation
    let tableName = strcat(system, source);
    tableName
}

Я хочу использовать эту функцию для создания таблицы. Попробовал следующие параметры безуспешно:

.create table GetTableName('value1', 'value2') (Timestamp: datetime)
.create table [GetTableName('value1', 'value2')] (Timestamp: datetime)

Я предполагаю, что команда ожидает, что имя таблицы будет строковым литералом. Есть ли способ сделать это? 1008 * это?

1 Ответ

1 голос
/ 26 марта 2020

Управляющие команды, которые создают таблицы, не могут включать выполнение запроса (и наоборот: запросы не могут запускать управляющие команды). Ограничение существует по соображениям безопасности.

Сценарий может быть реализован с помощью клиентского кода и двух вызовов: 1) Получить имя таблицы 2) Создать команду создания таблицы и отправить ее на сервер.

...