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_Id
(varchar(50)
+ varchar(50)
)。
如果这些 ID 之间有一个分隔符,那么您也应该根据该分隔符的大小来增加大小。
我试过这个查询
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_Id
(varchar(50)
+ varchar(50)
)。
如果这些 ID 之间有一个分隔符,那么您也应该根据该分隔符的大小来增加大小。