Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Varchar和int列在sql中连接_Sql Server_Nvarchar_Truncated - Fatal编程技术网

Sql server Varchar和int列在sql中连接

Sql server Varchar和int列在sql中连接,sql-server,nvarchar,truncated,Sql Server,Nvarchar,Truncated,我试过这个问题 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

我试过这个问题

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\u Id,DBI\u Id
数据类型是nvarchar(50),因为我存储的是这样的值(001002…)

和其他处于联接中的列都是int数据类型,除了

BI_Id and DBI_Id
这显示了一个错误

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


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

此处:
Dimension\u DDTU(BI\u Id,BI\u Name,DBI\u Id,DBI\u Name)
列大小之一不足以存储插入的值

我的水晶球说它是
Dimension\u DDTU.DBI\u Id
,它具有相同的
varchar(50)
大小,但必须是
varchar(100)
至少要接受
ds.BI\u Id+''+dm.DBI\u Id
varchar(50)
+
varchar(50)


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

源列的数据类型是什么?它们也是varchar类型吗?请检查更新。。连接中的列是int数据类型execpt BI_Id和DBI_Id,它们是varchar(50),因为我在这些列中存储数据,如001002 etcbut BI_Id和DBI_Id在源和目标上。所以这有点让人困惑。你能分享维度的完整结构吗_DDTU@seesharp
DBI\u Id
的长度是多少?现场检查并确认在其长度内传递数据的长度是多少?