C# 是否可以使用Dapper截断一个表或多个表?
我想知道是否可以使用Dapper运行TSQL查询,比如C# 是否可以使用Dapper截断一个表或多个表?,c#,sql-server,tsql,dapper,C#,Sql Server,Tsql,Dapper,我想知道是否可以使用Dapper运行TSQL查询,比如Truncate Table x 我所尝试的: using (var con = DB.Connection) { con.Open(); var ret = con.Execute("Truncate Table [Y].[X]"); } 另外,我不想为其创建SP 您似乎认为返回-1表示存在问题。但根据截断: 从表或表的指定分区中删除所有行,而不记录单个行的删除 和Dapper的Execute方法 所以-1在我看来是合理的
Truncate Table x
我所尝试的:
using (var con = DB.Connection)
{
con.Open();
var ret = con.Execute("Truncate Table [Y].[X]");
}
另外,我不想为其创建SP 您似乎认为返回-1表示存在问题。但根据截断: 从表或表的指定分区中删除所有行,而不记录单个行的删除 和Dapper的
Execute
方法
所以-1在我看来是合理的
编辑以添加
在进一步研究GitHub中的源代码之后,Dapper的Execute
扩展在引擎盖下调用SqlMapper的ExecuteImpl,该扩展(由于其调用方式只能有两种方式;但基本上都有)最终返回IDbCommand的ExecuteOnQuery
的结果。因此,有了这一块拼图,Martin Smith的信息适用于:
对于UPDATE、INSERT和DELETE语句,返回值是受命令影响的行数。对于所有其他类型的语句,返回值为-1
当你尝试这个的时候发生了什么?失败了吗?如果是,怎么做?@Mureinik,当我执行它时。结果是-1我不知道什么是“整洁”,但truncate table是通过一个简单的查询完成的,可以由任何外部应用程序执行。SSM与您开发的任何应用程序之间没有区别。与您可以使用SSM执行相同,您可以使用“SQL Server Operation Studio”或您开发的任何应用程序执行。。。。只要你有许可