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>
每当我尝试将内容从一个数据库表复制到另一个数据库表时,继续得到上述错误,这是我的代码。
SqlConnection connect = new SqlConnection($@"Data Source = Computer\SQLEXPRESS;Initial Catalog = Drivers;Trusted_Connection=True;");
connect.Open();
SqlCommand cmd = new SqlCommand($@"SELECT * INTO BackUpDatabase.DriversDetailTable FROM Drivers.DriversDetailTable", connect);
cmd.ExecuteNonQuery();
connect.Close();
答案 0 :(得分:3)
您的database
名称似乎是Drivers
而不是schema
名称
SELECT *
INTO BackUpDatabase.DriversDetailTable
FROM Drivers.DriversDetailTable --here schema name is missing
当您使用两部分标识符时,它将被解析为
schemaname.tablename
因此Drivers
和BackUpDatabase
被视为模式名称而不是数据库。
应该是
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