将数据集插入数据库表时出错

时间:2016-04-16 07:27:36

标签: sql sql-server stored-procedures

这是错误

  

字符串或二进制数据将被截断。

表值参数“@tblCustomers”的数据不符合参数的表类型。 SQL Server错误是:

  

Msg 8152,州:10
  声明已经终止。

这是用户定义的表格类型

CREATE TYPE [dbo].[recType] AS TABLE
(
   [refid] [int] NULL,
   [fromid] [varchar](13) NULL,
   [toid] [varchar](13) NULL,
   [message] [int] NULL,
   [status] [varchar](13) NULL,
)

这是存储过程

CREATE PROCEDURE [dbo].[SP_INSERT_RECVSMS]
    @tblCustomers recType READONLY
AS
BEGIN
    SET NOCOUNT ON;

    INSERT INTO RecieveSMS(Refid, fromID, Toid, message, status)
        SELECT 
            refid, fromid, toid, message, status 
        FROM @tblCustomers
END

1 个答案:

答案 0 :(得分:4)

错误信息非常清楚。目标/源表列为小以保存字符串值。

将字符串列的大小更改为适当的值

[fromid] [varchar](13) NULL
-- 
[fromid] [varchar](xxx) NULL,