有谁知道是否有可能使用Visual Studio/SQL Server Management Studio调试器来检查传递给存储过程的表值参数的内容?是否可以通过调试器检查表值参数的内容?
举一个简单的例子:
CREATE TYPE [dbo].[ControllerId] AS TABLE(
[id] [nvarchar](max) NOT NULL
)
GO
CREATE PROCEDURE [dbo].[test]
@controllerData [dbo].[ControllerId] READONLY
AS
BEGIN
SELECT COUNT(*) FROM @controllerData;
END
DECLARE @SampleData as [dbo].[ControllerId];
INSERT INTO @SampleData ([id]) VALUES ('test'), ('test2');
exec [dbo].[test] @SampleData;
使用上面的exec语句一个破发点,我能够步入存储过程没有任何麻烦。调试器显示@controllerData local的值为'(table)',但我还没有找到任何工具可以让我实际查看组成该表的行。
似乎在SQL Server Management Studio中运行良好 - 肯定比根本不知道表值参数中有什么更好。 尽管如此,如果您通过C#脚本调试存储过程,这并不是很好。你的代码将不得不从实际输出分离调试输出。如果发生异常,它也将在C#中崩溃 - 就我所见,无法通过C#获取任何结果的异常。 – 2010-06-10 08:16:29