2017-07-07 74 views
0
System.Data.SqlClient.SqlException occurred 
    HResult=0x80131904 
    Message=Invalid object name 'Drivers.DriversDetailTable'. 
    Source=.Net SqlClient Data Provider 
    StackTrace: 
<Cannot evaluate the exception stack trace> 

每次我试着将一个数据库表中的数据复制到另一个数据库时,我都会收到上述错误,继承我的代码。SQL命令查询

SqlConnection connect = new SqlConnection([email protected]"Data Source = Computer\SQLEXPRESS;Initial Catalog = Drivers;Trusted_Connection=True;"); 
      connect.Open(); 
      SqlCommand cmd = new SqlCommand([email protected]"SELECT * INTO BackUpDatabase.DriversDetailTable FROM Drivers.DriversDetailTable", connect); 
      cmd.ExecuteNonQuery(); 
      connect.Close(); 
+0

什么是错误?使用您正在使用的数据库进行标记。 –

+0

我如何标记数据库?对不起,我是新手,今天就开始吧 –

+0

好像你应该使用sql-server标签。 – jarlh

回答

3

看起来你database名字Driversschema

SELECT * 
INTO BackUpDatabase.DriversDetailTable 
FROM Drivers.DriversDetailTable --here schema name is missing 

当您使用两个部分IDENTIFER那么它将被解析为

schemaname.tablename

所以DriversBackUpDatabase被视为模式名称而不是数据库。

应该

SELECT * 
INTO BackUpDatabase.dbo.DriversDetailTable 
FROM Drivers.schemaname.DriversDetailTable --here replace schemaname with dbo or whatever schema name 

注:当您使用INTO条款它创建一个新表。当你第二次运行时,你可能会得到一个错误,说明表已经存在。最好在备份数据库使用前创建表INSERT INTO..select复制行

Insert into BackUpDatabase.dbo.DriversDetailTable (col1,col2,..) 
select col1,col2,..FROM Drivers.schemaname.DriversDetailTable 
+0

我试过并得到此错误 –

+0

发生System.Data.SqlClient.SqlException HResult = 0x80131904 Message =指定的模式名称“BackUpDatabase”或者不存在,或者您没有使用它的权限。 源= .net SqlClient数据提供 堆栈跟踪: <无法评估异常堆栈跟踪> –

+0

@JohnDoe - 检查现在... –