【发布时间】:2017-03-31 13:58:22
【问题描述】:
是否可以,如果可以,如何使用 SQL EXEC 将数据传递给存储函数的表值参数?
我知道如何从 C# 传递数据。我使用表值参数的四个存储过程之一没有产生预期的结果。我想从 SQL Server Management Studio 执行我的 proc 以进行调试,但我无法找到这样做的正确语法,如果这样的语法甚至存在的话。我在文档中没有找到任何相关的内容。
我的类型表:
CREATE TYPE [MyNameSpace].[MyTypeTable] AS TABLE(
//... all my fields
)
我的存储过程:
//... bunch of stuff
ALTER PROCEDURE [MyNameSpace].[MyStoredProc]
@MyTypeTableVar MyTypeTable READONLY
AS
BEGIN
//Do a bunch of stuff
//Want to test the stuff in here
END
我试过了:
IF OBJECT_ID('tempdb.dbo.#MyTempTable') IS NOT NULL DROP TABLE tempdb.dbo.#MyTempTable;
select top 0 *
into #MyTempTable
//existing table with structure that matches the table-valued param
from MyNameSpace.MyTable;
//...Long insert statement assigning test data to #MyTempTable
EXECUTE MyNameSpace.MyStoredProc @MyTypeTableVar = #MyTempTable;
抛出:
操作数类型冲突:nvarchar 与 MyTypeTable 不兼容
【问题讨论】:
标签: sql-server stored-procedures table-valued-parameters