2011-03-10 88 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

相关问题