我有一些数据
SELECT [field names] FROM [several joined tables] WHERE [some criteria is true]
我希望将此数据导出到另一个数据库,保持表结构完整,但只使用符合WHERE条件的行填充它们。
因此,如果我有5个连接表作为源,那么我的结果目标表也将是5.但它们只是稀疏地填充了传递WHERE子句约束的数据。
更简单地说,我有一个充满客户数据的数据库,我想向一个客户发送一个独立的数据库,只填充他/她的记录。
我有一些想法是导出整个数据库,然后删除[条件不正确]的所有记录,但我认为数据库的参照完整性不会清除所有不需要的记录。
是否有一种简单或“正确”(又称SSIS)的方式来做到这一点?
答案 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
的链接服务器。如果您在同一台服务器上使用两个数据库,只需删除名称的服务器部分。