Varchar 和 int 列加入 sql

Varchar and int columns join in sql

我试过这个查询

insert into Dimension_DDTU (BI_Id, BI_Name, DBI_Id, dBI_Name)
    select
        ds.BI_ID,
        dvo.name,
        ds.BI_Id + '' + dm.DBI_Id as DBI_Id,
        dso.dname
    from 
        Census.dbo.SMaster sm
    full outer join 
        C.dbo.dis dso on dso.did = sm.did
    full outer join  
        C.dbo.Div dvo on dvo.dsid = dso.diid
    full outer join 
        b.dbo.DMap ds on ds.DOp_Id = dso.did
    full outer join 
        b.dbo.DsMap dm on dm.DOp_Id = sm.did

这里 BI_Id,DBI_Id 数据类型是 nvarchar(50) 因为我正在存储这样的值 (001,002 ...)

其他加入join的列除了

外都是int数据类型
BI_Id and DBI_Id

这显示错误

String or binary data would be truncated.

错误提示您在插入时遇到问题。

此处:Dimension_DDTU (BI_Id, BI_Name, DBI_Id, dBI_Name) 列大小之一不足以存储插入的值。

我的水晶球说它是 Dimension_DDTU.DBI_Id,大小相同 varchar(50),但必须至少 varchar(100) 才能接受 ds.BI_Id + '' + dm.DBI_Idvarchar(50) + varchar(50))。

如果这些 ID 之间有一个分隔符,那么您也应该根据该分隔符的大小来增加大小。