我想知道是否可以使用Dapper运行像Truncate Table x
这样的TSQL查询?
我尝试过的:
using (var con = DB.Connection)
{
con.Open();
var ret = con.Execute("Truncate Table [Y].[X]");
}
PS. I do not want to create a SP for it.
我想知道是否可以使用Dapper运行像Truncate Table x
这样的TSQL查询?
我尝试过的:
using (var con = DB.Connection)
{
con.Open();
var ret = con.Execute("Truncate Table [Y].[X]");
}
PS. I do not want to create a SP for it.
Truncate
:
从表中移除所有行或指定分区的行,而不记录单个行删除。
Dapper的Execute
方法返回受影响的行数。
所以对我来说,-1似乎是合理的。
编辑添加
在进一步调查GitHub中的源代码后,Dapper的Execute
扩展在底层调用SqlMapper的ExecuteImpl方法,它(由于调用方式的原因只能有两种方式; 但基本上两种方式都适用)最终返回IDbCommand的ExecuteNonQuery
的结果。因此,有了这个谜题的一部分,Martin Smith从 MSDN's ExecuteNonQuery获得的信息适用:
对于UPDATE、INSERT和DELETE语句,返回值是命令所影响的行数。对于所有其他类型的语句,返回值为-1