我在这里找到了这个很棒的代码
CREATE TYPE [dbo].[StringList] AS TABLE(
[Item] [NVARCHAR](MAX) NULL
);
GO
CREATE PROCEDURE [dbo].[sp_UseStringList]
@list StringList READONLY
AS
BEGIN
-- Just return the items we passed in
SELECT l.Item FROM @list l;
END
GO
但我不知道如何通过 SSMS 进行测试
declare @list StringList = '1,2,3,4,5'
exec sp_UseStringList @list
给出错误:
Operand type clash: varchar is incompatible with StringList
请问如何测试列表'1,2,3,4,5'
由于您已声明
dbo.StringList
为用户定义的表类型,因此您必须像使用表一样使用它。因此,您必须将此值分配到表中,而不是分配
'1,2,3,4,5'
为字符串。INSERT
BOL 中有一个相当不错的示例,但我将根据您上面的示例创建一个。