共用方式為


HOW TO:啟用 Transact-SQL 偵錯

這個主題適用於:

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional

Visual Studio Express

s0fk6z6e.DoesApplybmp(zh-tw,VS.100).gif s0fk6z6e.DoesApplybmp(zh-tw,VS.100).gif s0fk6z6e.DoesApplybmp(zh-tw,VS.100).gif s0fk6z6e.DoesNotApplybmp(zh-tw,VS.100).gif

以 Visual Studio 進行 Transact-SQL 偵錯需要以 SQL Server 2005 開頭的 SQL Server 資料庫伺服器,並且設定適當的 權限。如果對應的 SQL Server 執行個體正在另一台電腦上執行,您還必須設定這兩台電腦上的 Windows 防火牆。

注意:不支援使用 SQL Server 2000 和舊版偵錯 Transact-SQL。

您也可以使用 Visual Studio 偵錯 SQL CLR 程式碼 (使用 Managed 程式碼的資料庫物件)。若要偵錯遠端資料庫伺服器上的 SQL CLR,您必須在執行 SQL Server 的執行個體上安裝遠端偵錯監視 (Remote Debugging Monitor)。如需詳細資訊,請參閱 如何:设置远程调试调试使用托管代码的数据库对象(SQL CLR 调试)

如需以 SQL Server Management Studio 偵錯 Transact-SQL 的詳細資訊,請參閱使用 Transact-SQL 偵錯工具 (英文)。

在 SQL Server 執行個體上準備 SQL Server 權限

  1. 將應用程式帳戶加入至 SQL Serversysadmin 固定伺服器角色。應用程式帳戶是用來執行 Visual Studio 的 Windows 帳戶。若要這麼做,請以同時為 sysadmin 成員的登入執行下列 Transact-SQL 陳述式,其中 Domain\Name 代表 Windows 帳戶登入:sp_addsrvrolemember 'Domain\Name', 'sysadmin'

  2. 將連接帳戶加入至 SQL Serversysadmin 固定伺服器角色。連接帳戶是 Windows 登入或 Transact-SQL 程式碼用於連接 SQL Server 執行個體的 SQL Server 登入。若要這麼做,請以同時為 sysadmin 成員的登入執行下列 Transact-SQL 陳述式,其中 Domain\Name 代表對應的帳戶:sp_addsrvrolemember 'Domain\Name', 'sysadmin'

注意

由於偵錯是具有高權限的作業,因此我們建議您在測試伺服器上偵錯 Transact-SQL 程式碼,而不要在實際執行伺服器上偵錯。因此,只有 sysadmin 固定伺服器角色的成員可以在 SQL Server 中偵錯。在您調查許多 Transact-SQL 陳述式的作業時,偵錯工作階段通常會執行一段很長的時間。工作階段所取得的鎖定 (例如更新鎖定) 可能會長時間保留,直到工作階段結束,或者交易已認可或已回復為止。

準備 Windows 防火牆以進行遠端偵錯 (當 SQL Server 於另一台電腦上執行時)

  1. 在執行 Visual Studio 的電腦上,您必須將下列項目加入至 Windows 防火牆例外清單中:

    1. Visual Studio 程式 (Devenv.exe)。

    2. TCP 通訊埠 135

  2. 在執行 SQL Server 執行個體的電腦上,您必須將下列項目加入至 Windows 防火牆例外清單中:

    1. SQL Server 程式 (sqlservr.exe)。根據預設,sqlservr.exe 安裝在 C:\Program Files\Microsoft SQL Server\MSSQL10.InstanceName\MSSQL\Binn,其中 InstanceName 是預設執行個體的 MSSQLSERVER,以及任何具名執行個體的執行個體名稱。

    2. TCP 通訊埠 135

    3. 如果您的網域原則需要透過 IPSec 進行網路通訊,您還必須開啟 UDP 4500 與 UDP 500 通訊埠。

請參閱

參考

Transact-SQL 偵錯設定錯誤與疑難排解

概念

偵錯 Transact-SQL

其他資源

設定 Transact-SQL 偵錯

偵錯設定和準備

在 SQL 2000 Desktop Engine 上啟用 SQL 偵錯

HOW TO:設定遠端偵錯

偵錯使用 Managed 程式碼的資料庫物件 (SQL CLR 偵錯)