提取找回未保存但运行过的SQL Query

如果不小心关闭了已经运行过但是没有保存的SQL Query Scripts,以下查询语句可以帮助提取所有已运行SQL Queries的历史记录。
Use Master 
SELECT execquery.last_execution_time AS [Date Time], execsql.text AS [Script] 
FROM sys.dm_exec_query_stats AS execquery CROSS APPLY sys.dm_exec_sql_text(execquery.sql_handle) AS execsql 
ORDER BY execquery.last_execution_time DESC

 

资料源:https://stackoverflow.com/questions/15034832/recover-unsaved-sql-query-scripts/40558402

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SqlQuery是Entity Framework中的一个方法,用于执行原始的SQL查询并返回给定泛型类型的元素。它可以用于两种不同的情况。 第一种情况是在DbSet<T>上使用SqlQuery方法。例如,在一个控制器的Index方法中,你可以使用以下代码来执行一个SQL查询并将结果转换为指定的实体类: ```csharp using (MyContext db = new MyContext()) { string sql = "SELECT * FROM Class WHERE Id = 1"; IList<Classes> queryResult = db.Database.SqlQuery<Classes>(sql).ToList(); var count = queryResult.Count; } ``` 这个示例中,使用了DbContext的Database属性,然后调用了SqlQuery方法,传入了SQL查询字符串和要返回的实体类类型。最后,将结果转换为一个列表。 第二种情况是直接在DbContext上使用SqlQuery方法。例如,你可以在一个控制器的方法中调用存储过程并获取结果集: ```csharp public string YanJiuShengPeiYangZhuTiList() { var account = DataCollection.userinfo.UserAccount; SqlParameter[] parameters = new SqlParameter[] { new SqlParameter("@account", account) }; var result = ""; var queryResult = Model.Database.SqlQuery<Zsl>("exec usp_Total3 @account", parameters).OrderByDescending(a => a.NJ); result = queryResult.ToJson(); return result; } ``` 在这个示例中,使用了DbContext的Database属性,然后调用了SqlQuery方法,传入了存储过程的调用字符串和参数。最后,对结果集进行排序并将结果转换为JSON格式。 除了返回查询结果的方法之外,你还可以使用db.Database.ExecuteSqlCommand方法来执行操作语句,例如UPDATE或DELETE语句。例如,在一个控制器的Index2方法中,你可以使用以下代码来执行一个更新操作: ```csharp using (MyContext db = new MyContext()) { string sql = "UPDATE Class SET ClassName = '十班' WHERE Id = 7"; int affectedRows = db.Database.ExecuteSqlCommand(sql); } ``` 在这个示例中,使用了DbContext的Database属性,然后调用了ExecuteSqlCommand方法,传入了更新语句。最后,返回受影响的行数。 综上所述,SqlQuery是Entity Framework中用于执行原始SQL查询并返回给定泛型类型的方法。它可以在DbSet<T>上使用,也可以直接在DbContext上使用。除此之外,你还可以使用ExecuteSqlCommand方法来执行操作语句。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值