npgsql 创建表

Npgsql to create tables

我正在努力使用 Npgsql 创建一个 table。

using (NpgsqlCommand command = new NpgsqlCommand("CREATE TABLE @tableName(asdf TEXT)", con))
{
    command.Parameters.Add(new NpgsqlParameter("@tableName", "test"));
    command.ExecuteReader();
}

抛出异常:

Npgsql.PostgresException: '42601: syntax error at or near ""',这并没有提供任何线索来找出问题所在。

如何使用参数创建 table?真的可以吗?

Table 名称不能参数化——您必须将名称集成到您的 DDL 字符串中;参数化是(除其他外)关于生成和重用单个查询计划而不考虑参数的内容,但这不适用于 CREATE TABLE 语句。

如果需要动态建表,可以使用字符串插值,但一定要正确转义,避免SQL用户输入注入。