保证两个表结构一样!insert into table1 select * from table2

解决方案 »

  1.   

    用sql了
    insert into b(column_a,column_b......) select column_a,column_b...... from a
      

  2.   

    我没说清楚.怪我.A表是sybase的数据表.B表是SQLSERVER2000的数据表.
      

  3.   

    insert into Ds.Tables["sqltable"] select from Ds.Tables["sybasetable"]
    这样可以吗?
      

  4.   

    同意一楼:保证两个表结构一样!insert into table1 select * from table2
      

  5.   

    如果A表是sybase的数据表.B表是SQLSERVER2000的数据表.
    可以将A表中的数据都读入一个dataset中的一个table,再将其插入B表中
    用循环的话应该不是很麻烦
    但是也要考虑数据类型的转换
      

  6.   

    insert into Ds.Tables["sqltable"] select from Ds.Tables["sybasetable"]
    这样可以吗?这是什么写法呀?
      

  7.   

    select * into biao2 from biao1
      

  8.   

    没有办法吗? knightufp(try catch finally .) 怎么把dataset 中的表转到另外的表啊?
      

  9.   

    可以通Sql Server导入导出功能啊有好有用的,试试吧!
      

  10.   

    用Sql Server的功能我还在这里问啊?
      

  11.   

    自己看看 改改把 
    Dim j As Integer
                                For j = 0 To ds.Tables("Upfiles").Rows.Count - 1
                                    Dim strInsert As String = "INSERT INTO UpFiles (MailId,Name,Type,Content) VALUES (@MailId,@Name,@Type,@Content)"
                                    Dim InsertComm As New SqlCommand(strInsert, objConn)
                                    Dim param1 As New SqlParameter("@Name", SqlDbType.VarChar)
                                    param1.Value = ds.Tables("Upfiles").Rows(j)("Name")
                                    Dim param2 As New SqlParameter("@Content", SqlDbType.Image)
                                    param2.Value = ds.Tables("Upfiles").Rows(j)("Content")
                                    Dim param3 As New SqlParameter("@Type", SqlDbType.VarChar)
                                    param3.Value = ds.Tables("Upfiles").Rows(j)("Type")
                                    Dim param4 As New SqlParameter("@MailId", SqlDbType.Int)
                                    param4.Value = ds.Tables("TheMess").Rows(0)("Id")
                                    InsertComm.Parameters.Add(param1)
                                    InsertComm.Parameters.Add(param2)
                                    InsertComm.Parameters.Add(param3)
                                    InsertComm.Parameters.Add(param4)
                                    Try
                                        InsertComm.ExecuteNonQuery()
                                    Catch ex As Exception
                                        flag = False
                                        bSuccess = False
                                        lblMsg.Text += "用户" + strAcceptName(i) + "追加附件失败!请与管理员联系。原因:"
                                        lblMsg.Text += ex.Message + "<br>"
                                        Exit Sub
                                    End Try
                                Next
      

  12.   

    我现在把sybase表里的数据读到了ds.Tables["sybasetable"]里了,SQL的表读到了ds.Tables["sqltable"]里了.有什么办法让sybase的表里的内容加入到SQL的表里呢?
      

  13.   

    如果表结构一样的话,那么你可以将ds.Tables["sybasetable"]中的每一行给直接添加到
    // eg:
    ds.Tables["sqltable"]中。
    foreach(DataRow dr in ds.Tables["sybasetable"].Rows)
    {
         ds.Tables["sqltable"].Rows.Add(dr);
    }
    如果表结构不一样的话,你先创建ds.Tables["sqltable"]的表行,然后将ds.Tables["sybasetable"]中的数据转换后赋值给行中各列,然后把行插入到ds.Tables["sqltable"]
    // eg:
    foreach(DataRow dr in ds.Tables["sybsetable"].Rows)

         // 创建新行
         DataRow sqldr=ds.Tables["sqltable"].NewRow();
         // 进行相应的转换
         sqldr["col11"]=dr["col21"];//如果必要的话可以进行相应的类型转换等
         ..........................
         sqldr["col1n"]=dr["col2n"];
         // 添加到ds.Tables["sqltable"]中
         ds.Tables["sqltable"].Rows.Add(sqldr);
    }
      

  14.   

    楼上的,我感觉你的方法很好,可是运行时出错了.提示:该行已经属于另一个表。 
    出错行就是:ds.Tables["sqltable"].Rows.Add(dr);
    怎么解决呢?
      

  15.   

    ds.Tables["sqltable"].Rows.Add(dr);的方法不行,用下面的方法:sql server生成DataTable:DT1sybase生成DataTable:DT2
    foreach(DataRow Dr in DT2.Rows)
    {
        DT1.ImportRow(Dr);
    }