将表格从一个模式复制到另一个模式?

时间:2012-12-06 09:30:47

标签: sql sql-server sql-server-2008

我在Schema1中有许多包含数据的表格,我想将这些表格与数据一起复制到我创建的新模式Schema2

有一种优雅的方式吗?我正在使用SQL Server Management studio。

4 个答案:

答案 0 :(得分:8)

在SQL Management Studio中右键单击具有源表的数据库,选择Tasks - >导出数据。

您将能够设置源和目标服务器和架构,选择要复制的表,并且可以让目标架构创建将要导出的表。

另外,如果要复制到同一服务器和数据库但是不同的模式,请确保:

  1. 使用Sql Server Native Client(参见
    https://i.stack.imgur.com/Qqhbd.png)来源和目的地
    参数
  2. 为Source选择相同的数据库名称 目的地参数
  3. 从一个或多个表中选择复制数据或 视图(可选)在选择源表和视图 GUI
  4. 将目标表的架构更改为不同的架构 源模式(即键入类似“newschema.tablename”)

答案 1 :(得分:1)

我不确定您是否正在寻找这个答案,但看到此链接,它可能会为您提供答案并提出疑问: Import data from table to another

答案 2 :(得分:1)

假设架构有结构更改,那么您不能只是执行备份并还原到新数据库,您可以右键单击数据库并选择任务|生成脚本。在第二页上有一个选项(默认情况下是关闭)来编写数据脚本。

它创建了一系列SQL插入语句以及CREATE TABLE语句。您可能还想选择脚本触发器,并检查使用这些功能时可能需要的其他一些选项。

您还可以跨模式执行INSERT或使用SSIS,如下所述:

How can I copy data records between two instances of an SQLServer database

需要注意的一点是,我相信导出数据工具不会传播索引,约束,触发器等,这就是为什么我喜欢将第一种方法用于适量的数据或者至少创建新的首先是表格,然后是其他方法之一。

答案 3 :(得分:1)

这是我做的:

  1. 右键单击源表并选择"选择前1000行"。
  2. 删除"前1000"来自select。
  3. 添加" INTO newschema.newtable"在from子句
  4. 之上
  5. 运行该查询。
  6. 在新表上创建索引。
  7. 这对每个人都不起作用,因为它需要在SQL Studio中的同一连接中提供新架构。