根据选择标准导出表(对象和数据)

时间:2011-08-30 19:35:10

标签: sql sql-server-2008

我有一些数据

SELECT [field names] FROM [several joined tables] WHERE [some criteria is true]

我希望将此数据导出到另一个数据库,保持表结构完整,但只使用符合WHERE条件的行填充它们。

因此,如果我有5个连接表作为源,那么我的结果目标表也将是5.但它们只是稀疏地填充了传递WHERE子句约束的数据。

更简单地说,我有一个充满客户数据的数据库,我想向一个客户发送一个独立的数据库,只填充他/她的记录。

我有一些想法是导出整个数据库,然后删除[条件不正确]的所有记录,但我认为数据库的参照完整性不会清除所有不需要的记录。

是否有一种简单或“正确”(又称SSIS)的方式来做到这一点?

2 个答案:

答案 0 :(得分:1)

简单易行的方法是。

步骤1.在新数据库中创建所需的表(2005/2008)        步骤1 A.右键单击表 - 脚本表为 - 创建到新查询编辑器窗口。现在在新数据库上运行此脚本。

步骤2.根据您的条件将数据从旧数据库导出到新数据库。         如果您使用BIDS SSIS,则可以执行所有步骤。

答案 1 :(得分:0)

您可以使用select into将行复制到新创建的表中:

select  col1, col2, ...
into    DestinationTable
from    SourceServer.SourceDb.dbo.SourceTable
where   col1 = 'A' and ...

四部分名称假设您使用多个SQL Server,并且您有一个名为SourceServer的链接服务器。如果您在同一台服务器上使用两个数据库,只需删除名称的服务器部分。