将不同表/列格式的值插入到具有不同列的另一个表中

时间:2014-02-25 03:28:22

标签: sql-server syntax syntax-error sql-server-2000 sql-insert

这是我想要做的事情。

我试图将具有不同列的某个表中的值插入到另一个表中。我得到上述值的第一个表的名称是dbtable1.dbo.patient,而我插入的另一个表是dbtable2.dbo.clients。 两者都有id作为他们的主键。但是,dbtable2.dbo.patient中的大多数id都具有NULL值,这与第二个表的id相反,后者具有自动递增的id值。所以,我确实将null的行更改为0。 现在,我已准备好运行此语法。

INSERT  INTO dbtable2.dbo.clients
        (
          cid ,
          lname ,
          fname ,
          mname ,
          ctype ,
          cadd ,
          cpno
        )
        SELECT  recid ,
                lname ,
                fname ,
                midname ,
                type ,
                address ,
                celno
        FROM    dbtable1.dbo.patient

示例语法基于两个数据库的实际设计。

但是,我继续发出此错误消息指示

  

服务器:消息8152,级别16,状态2,行1   字符串或二进制数据将被截断。   声明已经终止。

我怀疑也许我遇到此错误的原因是因为我正在尝试将值传输到具有ID自动递增列的表。 嗯,这是我自己的想法。或者也许可能有另一个原因导致此错误触发。 比如,我将第一个表ID的值更改为0并且因为它违反了主键插入规则,因此这个错误已经弹出。

我相信如果我可以使用一种语法来增加recid的值,因为我正在运行插入到cid中,这个错误将不会出现,我可能会为运行相同的表达式做一些较少的工作每一行。

你们想的是什么?

0 个答案:

没有答案