2016-02-05 44 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