首页 > 解决方案 > sqlkata 如何将带点的表名包装到方括号中?

问题描述

我想得到这样的查询。

INSERT INTO [z_odv_17.02.2018] ([Val1], [Val2]) VALUES (@p0, @p1)

但是 sqlkata 编译这个查询略有不同。

INSERT INTO [z_odv_17].[02].[2018] ([Val1], [Val2]) VALUES (@p0, @p1)

如何将带有点的整个表名包装到括号中?或者作为替代方式,如何让 sqlkata 忽略点?

基本上,我需要 sqlkata 来编译一个名称,[z_odv_17.02.2018]而不是[z_odv_17].[02].[2018].

我曾尝试使用FromRaw,但System.InvalidCastException被抛出。它不能从SqlKata.RawFromClauseto 转换SqlKata.FromClause

重现错误的代码片段。

var name = "[z_odv_17.02.2018]";
var sql = new Query()
.FromRaw(name)
.AsInsert(new
{
    Val1 = 1,
    Val2 = true
});

var mssql = new SqlServerCompiler();

var mssqlResult = mssql.Compile(sql);

var mssqlText = mssqlResult.Sql;

标签: c#sqlsql-serversqlkata

解决方案


推荐阅读