【问题标题】:Copy a table to another database将表复制到另一个数据库
【发布时间】:2015-07-07 23:22:25
【问题描述】:

首先,我是 T-SQL 的初学者,所以这个问题可能很愚蠢。对于那个很抱歉。

我正在尝试像这样将表复制到另一个数据库

USE Datatable
GO
     SELECT *
        INTO Datatable.HumanResources.Employee
        FROM AdventureWorks2012.HumanResources.Employee
        WHERE 1=0

我得到一个错误:

"Msg 2760, Level 16, State 1, Line 2
The specified schema name "HumanResources" either does not exist or 
you do not have permission to use it." 

我是否有权限,或者我不能像那样重用 Adventureworks 架构或以某种方式更改权限?帮助。

【问题讨论】:

  • 我相信错误消息是指 Datatable 架构。如果您尝试使用 datatable.dbo.employee 做同样的事情,它会起作用吗?
  • 我试过了,但它并没有准确地复制所有表,因为它们有自己的架构。

标签: sql tsql schema


【解决方案1】:

Datatable.HumanResources.Employee是否已经存在于您的新数据库中且具有相同的列和类型?

还值得检查您连接到 SQL 的用户是否对两个数据库都具有适当的权限,因为您会遇到权限错误。

您的WHERE 1=0(我相信您是从here 获得的)只会创建一个包含另一个表中的列的空白表。

您需要的正确查询是

USE AdventureWorks2012
GO

SELECT *
INTO HumanResources.Employee IN Datatable
FROM HumanResources.Employee

【讨论】:

    【解决方案2】:

    HumanResources 方案是否存在于您的源数据库和目标数据库中?另外,我想知道你为什么有WHERE 1=0。即使您没有出现此错误,该查询也永远不会复制任何行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-07
      • 2012-05-15
      • 2018-08-30
      • 1970-01-01
      • 2017-06-03
      相关资源
      最近更新 更多