我可以使用标量函数作为 .create table 控制命令中的 table 名称吗?

Can I use a scalar function as the table name in .create table control command?

我有一个存储函数,可以根据一组参数生成身份名称,如下所示:

.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
}

我想用这个函数创建一个table。尝试了以下选项但没有成功:

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

我猜命令希望 table 名称是字符串文字。有什么办法可以做到这一点?

创建 table 的控制命令不能包含查询执行(反之亦然:查询不能 运行 控制命令)。 出于安全原因存在限制。

您可以使用客户端代码并进行两次调用来实现该场景: 1) 导出 table 名称 2) 生成table创建命令并发送到服务器。