Pet*_*ock 6 sql-server-2008 user-defined-type
我在这里找到了这个美妙的代码
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
Run Code Online (Sandbox Code Playgroud)
但我不知道如何通过 SSMS 进行测试
declare @list StringList = '1,2,3,4,5'
exec sp_UseStringList @list
Run Code Online (Sandbox Code Playgroud)
给出错误:
Operand type clash: varchar is incompatible with StringList
Run Code Online (Sandbox Code Playgroud)
我该如何测试列表“1,2,3,4,5”
由于您已声明dbo.StringList
为用户定义的表类型,因此您必须像使用表一样使用它。
因此'1,2,3,4,5'
,您必须INSERT
将此值放入表中,而不是将其分配为字符串。
BOL 中有一个相当不错的例子,但我会根据你上面的例子创建一个。
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
DECLARE @StringList StringList
INSERT Into @StringList values('1,2,3,4,5')
EXEC sp_UseStringList @StringList
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
20460 次 |
最近记录: |