2016-02-05 120 views
0

在我的asp.net mvc应用程序中,我使用Sql Data Adapter来更新记录。我想让一个SQL查询超时

例如

UPDATE sample SET status = 1 WHERE id = @id 

我需要测试,其中该SQL代码无法运行,而不是任何记录更新之情况。我怎样才能做到这一点?

我应该锁定样本表,我该怎么做? 我怎样才能使这个更新查询以某种方式不起作用,而不是更新任何记录?

忘记提示:我无法更改此代码或应用程序代码,也无法给出随机@id参数。

我需要在数据库级别执行此操作。

回答

0

您可以将id设置为肯定不存在的值(例如-1)。

或者您可以删除访问数据库的用户(在连接字符串中)用于更新此表的用户权限。希望它不是:)

+0

我无法更改代码并给出不存在的ID。应用程序正在运行,不能修改外部参数。 @id在那里总是有效的。 – Can

0

添加一个[授权]属性到有问题的控制器,并尝试以访客用户身份执行操作。

编辑。要做到这一点的服务器端,输入以下内容来查询窗口的数据库

Begin Transaction 

,而你做你的测试,必须锁定数据库

+0

我不应该改变代码。 – Can

1

,您就只能通过读取数据库中的特定表以下技术之一。

  • 插入,更新,删除触发器
  • 检查约束和删除触发器
  • 使数据库只读
  • 把表中的只读文件组
  • DENY对象级别的权限
  • 创建视图
+0

如何在特定时间内只读表格? – Can

+0

将脚本编写为'DENY'或'ALLOW'对象级别权限,并将其安排或按需要运行 – Raj