我在数据库中做了一些简单的步骤
第1步:
CREATE TYPE [dbo].[TempType] AS TABLE([MM] [INT])
第2步:
CREATE PROC [DBO].[TEMP1] (@MYTAB TEMPTYPE READONLY)
AS
BEGIN
SELECT *
FROM @MYTAB
END
第3步:
CREATE TABLE #TEMP11 ([MM] [INT])
INSERT INTO #TEMP11
SELECT 1 UNION
SELECT 2 UNION
SELECT 3
SELECT * FROM #TEMP11
EXEC TEMP1 #TEMP11
结果:
(4 row(s) affected)
(4 row(s) affected)
Msg 206,Level 16,State 2,Procedure temp1,Line 0
不兼容
操作数类型冲突:nvarchar与TempType
我在另外两台服务器上做了同样的消息。我的代码中有什么错误。我也使用过SQL Server 2008 R2和SQL Server 2014。
答案 0 :(得分:6)
创建类型为TempType
的变量:
DECLARE @Temp11 TempType
INSERT INTO @Temp11 SELECT 1 UNION SELECT 2 UNION SELECT 3
SELECT * FROM @Temp11
EXEC TEMP1 @Temp11
您的过程不接受temporary
表作为输入参数,而是接受TempType
类型的参数。