我正在尝试在存储过程中使用用户定义的表,但是在运行过程时却出现以下错误
"Operand type clash: varchar is incompatible with ..."
我已经定义了一个用户定义的表格,如下所示:
CREATE TYPE [myUserTable] AS TABLE(
[Id] [nvarchar](10) NOT NULL)
存储过程:
Create PROCEDURE FETCHUSER
(@USERS [myUserTable] readonly,
@Firstname varchar(max))
select * from UserTable as ut, @USERS as mt where mt.Id = ut.Id
执行时,我提供了以下输入参数:
@USERS = 'Sample'
但由于错误
"Operand type clash: varchar is incompatible with ..."
我认为以下代码可以帮助您
CREATE TYPE [dbo].[myUserTable] AS TABLE([Id] [nvarchar](10) NOT NULL);
CREATE PROCEDURE [dbo].FETCHUSER
@USERS [myUserTable] READONLY,
@Firstname VARCHAR(MAX)
AS
BEGIN
SELECT *
FROM UserTable AS ut
JOIN @USERS AS mt
ON mt.Id = ut.Id;
END
GO
DECLARE @users [myUserTable]
INSERT INTO @users
VALUES
(
'1'
) ,
(
'2'
)
EXEC FETCHUSER @users,
'yourFirstName'
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。