有誰知道是否有可能使用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