2011-03-10 35 views

回答

5

不知道這裏最好的辦法就是我如何做到這一點:

您可以右鍵單擊該SP>任務>運行>新查詢窗口。這將允許您使用參數調用SP。

然後,您可以在SP中的各個點上進行選擇以進行調試。

如果它是一個非常複雜的SP,則可以將代碼從SP中取出,只需聲明變量代替參數,然後就可以直接運行TSQL代碼。

我很想聽到更好的方法。

+0

對不起,我該如何聲明變量來代替參數?這是我第一次使用微軟sql server管理工作室。 – MBU 2011-03-10 23:28:36

+2

只需將參數註釋掉,然後用相同的名稱聲明tsql變量,然後將變量值設置爲任何你想要的.--聲明要使用的變量。 DECLARE @MyCounter int; - 初始化變量。 SET @MyCounter = 0; – Burt 2011-03-10 23:37:40

+0

非常感謝你! – MBU 2011-03-10 23:41:42

0

在這裏從MSDN Using Variables and Parameters (Database Engine)

的Transact-SQL的解釋/實施例有幾種方式來傳遞Transact-SQL語句之間的數據。這些包括以下內容:

Transact-SQL局部變量。

Transact-SQL變量是可以保存數據值的Transact-SQL批處理和腳本中的對象。變量被聲明或定義後,批處理中的一個語句可以將該變量設置爲一個值,批處理中的後面的語句可以從變量中獲取該值。例如:

複製

USE AdventureWorks2008R2; 
GO 
DECLARE @EmpIDVar int; 
SET @EmpIDVar = 1234; 
SELECT * 
FROM HumanRresources.Employee 
WHERE BusinessEntityID = @EmpIDVar; 

注意 可以在一個批次中聲明的局部變量的最大數量爲10,000。 Transact-SQL參數。

參數是一個對象,用於在存儲過程和執行存儲過程的批處理或腳本之間傳遞數據。參數可以是輸入參數或輸出參數。例如:

複製

USE AdventureWorks2008R2; 
GO 
CREATE PROCEDURE ParmSample @EmpIDParm int AS 
SELECT BusinessEntityID, JobTitle 
FROM HumanResources.Employee 
WHERE BusinessEntityID = @EmpIDParm ; 
GO 

EXEC ParmSample @EmpIDParm = 109 ; 
GO 

應用程序使用應用程序變量和參數標記與Transact-SQL語句的數據進行工作。

Application變量

應用程序編程語言,如C,C++,BASIC,和Java有自己的變量,用於保存數據。使用數據庫API的應用程序必須先將由Transact-SQL語句返回的數據移動到應用程序變量中,然後才能使用數據。這通常是使用稱爲綁定的過程完成的。應用程序使用API​​函數將結果集列綁定到程序變量。當提取一行時,API提供程序或驅動程序將數據從列移動到綁定的程序變量。

參數標記

參數標記是由ADO,OLE DB和基於ODBC的數據庫API支持。參數標記是放置在Transact-SQL語句中輸入表達式位置的問號(?)。然後參數標記綁定到應用程序變量。這允許來自應用程序變量的數據在Transact-SQL語句中用作輸入。參數標記還允許存儲過程輸出參數和返回代碼綁定到應用程序變量。輸出數據然後在過程執行時返回到綁定變量。 DB-Library API還支持將存儲過程參數和返回代碼綁定到程序變量。

Regards

相關問題