Sql CTE+插入错误:字符串或二进制数据将被截断

Sql CTE+插入错误:字符串或二进制数据将被截断,sql,insert,sql-server-2012,common-table-expression,Sql,Insert,Sql Server 2012,Common Table Expression,没有什么背景。我们从报告部门得到一份文件。这是它的工作做了一堆聚合,并推到另一个文件,一个合格的文件 错误显示: Msg 8152,第16级,第13状态,第2行 字符串或二进制数据将被截断。 声明已终止 有人能帮忙吗?有人知道发生了什么吗?从错误中可以明显看出,对于一个或多个列,您试图设置的数据大于列大小。。我将查看名称列和地址列。一种简单的调试方法是在select子句中的列周围放置一个MAXLEN,并将其与表定义进行比较。看起来您正试图将10磅的shinola装进一个5磅的袋子中。观察效果非常

没有什么背景。我们从报告部门得到一份文件。这是它的工作做了一堆聚合,并推到另一个文件,一个合格的文件

错误显示:

Msg 8152,第16级,第13状态,第2行 字符串或二进制数据将被截断。 声明已终止


有人能帮忙吗?有人知道发生了什么吗?

从错误中可以明显看出,对于一个或多个列,您试图设置的数据大于列大小。。我将查看名称列和地址列。一种简单的调试方法是在select子句中的列周围放置一个MAXLEN,并将其与表定义进行比较。

看起来您正试图将10磅的shinola装进一个5磅的袋子中。观察效果非常好。听起来很技术……没错,我注释掉了部分代码,直到我看到它失败的地方。这个错误使我认为内存中的数据将被截断,因此不允许我插入..但我想这是有意义的,因为直到我尝试插入并匹配字段的长度,我才有问题。谢谢你,伙计。
; 
With CTE AS 
( 
       SELECT  IIF (ISNULL (POLHOLDERID,'') ='', Member_id, PolHolderId) AS RespMemberId, 
        CASE WHEN (  Member_id = PolHolderId)  then 1 When ISNULL (PolHolderId,'') <> '' THEN 2 ELSE 3 END AS RespLevel ,  
       ROW_Number() OVER (PARTITION BY [Case Base#] ORDER BY CASE WHEN (  Member_id = PolHolderId)  then 1 When ISNULL (PolHolderId,'') <> '' THEN 2 ELSE 3 END, DOB) AS RN, 
       * FROM [dbo].[AllHRS]
       )
INSERT INTO dbo.Eligibility (
      [CaseBaseNo]
      ,[RecordType]
      ,[HealthPlanId]
      ,[PlanId]
      ,[HPMemberId]
      ,[HPMemberId2]
      ,[FirstName]
      ,[MiddleName]
      ,[LastName]
      ,[Street1]
      ,[Street2]
      ,[City]
      ,[State]
      ,[Zip]
      ,[GroupNumber]
      ,[UserDefined1]
      ,[UserDefined2]
      ,[StartDate]
      ,[TerminationDate]
      ,[InitialActivationCode]
      ,[LoadAmount]
      ,[ServiceDate]
      ,[ServiceCode]
      ,[ServiceDescription]
      ,[HPReferenceNo]
      ,[IssueNewCard]
      ,[Language]
      ,[Filler])
SELECT 
[Case Base#] as CaseBase, 
'117A' as RecordType, 
'H81' as HealthPlanID, 
'H81-117A' as PlanId, 
RespMemberId AS MemberId,
null, 
IIF (ISNULL (POLHOLDERID,'') ='', Member_First_Name, IIF(Charindex(',', PolHolderName)> 0, Substring(PolHolderName, 1,Charindex(',', PolHolderName)-1), PolHolderName)), 
NULL,
IIF (ISNULL (POLHOLDERID,'') ='', Member_Last_Name, Substring(LTRIM(IIF(Charindex(',', PolHolderName)> 0, Substring(PolHolderName, Charindex(',', PolHolderName)+1,LEN(PolHolderName)), PolHolderName)),1,charIndex(' ',
     LTRIM(IIF(Charindex(',', PolHolderName)> 0, Substring(PolHolderName, Charindex(',', PolHolderName)+1,LEN(PolHolderName)), PolHolderName))+' '))),
ADDRESS1, 
ADDRESS2, 
CITY, 
STATE, 
ZIP, 
[Case Base#], 
NULL, 
NULL, 
FORMAT(GETDATE(), 'MM/dd/yyyy') AS [START DATE], 
IIF([Member TermDate] is null, '', 
DATEADD(month,30,[Member TermDate])), 
NULL, 
0.00, 
[INTERVIEW DATE], 
CASE
    WHEN Clinical_Variable not like '%57' and Clinical_Variable not like '%58' THEN 'HRS'
    WHEN Clinical_Variable like '%57' THEN 'HRA'
    WHEN Clinical_Variable like '%58' THEN 'CC'
END as Service_Code, 
NULL, 
0.00, 
'YES', 
NULL, 
NULL
FROM CTE WHERE RN =1