【问题标题】:Operand type clash: nvarchar is incompatible with Type_WP_Days操作数类型冲突:nvarchar 与 Type_WP_Days 不兼容
【发布时间】:2015-10-21 08:45:50
【问题描述】:

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

第一步:

CREATE TYPE [dbo].[TempType] AS TABLE([MM] [INT])

第二步:

CREATE PROC [DBO].[TEMP1] (@MYTAB TEMPTYPE READONLY)  
AS
BEGIN
    SELECT * 
    FROM @MYTAB
END

第三步:

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) 

消息 206,级别 16,状态 2,过程 temp1,第 0 行
操作数类型冲突:nvarchar 与 TempType 不兼容

我在另外两台服务器上做了同样的信息。我的代码有什么问题。我也使用了 SQL Server 2008 R2 和 SQL Server 2014。

【问题讨论】:

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


    【解决方案1】:

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

    DECLARE  @Temp11 TempType 
    
    INSERT INTO @Temp11 SELECT 1 UNION SELECT 2 UNION SELECT 3 
    SELECT * FROM @Temp11
    
    EXEC TEMP1  @Temp11
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-19
      • 2012-06-03
      相关资源
      最近更新 更多