sql-server - 操作数类型冲突 : nvarchar is incompatible with Type_WP_Days

标签 sql-server tsql sql-server-2008-r2 sql-server-2014

我在数据库中做了一些简单的步骤

第 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
Operand type clash: nvarchar is incompatible with TempType

我在另外两台服务器上执行了此操作,它给出了相同的消息。我的代码有什么问题。我还使用了 SQL Server 2008 R2 和 SQL Server 2014。

最佳答案

不创建临时表,而是创建 TempType 类型的变量:

DECLARE  @Temp11 TempType 

INSERT INTO @Temp11 SELECT 1 UNION SELECT 2 UNION SELECT 3 
SELECT * FROM @Temp11

EXEC TEMP1  @Temp11

您的过程不接受临时表作为输入参数,而是接受TempType类型的参数。

关于sql-server - 操作数类型冲突 : nvarchar is incompatible with Type_WP_Days,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31716224/

相关文章:

sql - 时间序列图表数据的进入点和退出点

sql - 如果列已更新,则将变量用于 UPDATE() 检查器

sql - 查找多父层次结构的深度 - SQL

sql - 为什么我得到额外的(1 行受影响)

sql-server - 最大值之和(TOP x)

sql - 将 varchar 值 '0%' 转换为数据类型 int 时转换失败

sql - 对 SQL Server 表进行重复数据删除

java - 如何修复: No suitable driver found for jdbc:sqlserver

sql - 如何在其他用户编辑数据时刷新其他用户界面上的数据

c++ - 具有非托管代码的 CLR SP