将具有特定前缀的表移动到新数据库

时间:2008-12-11 02:22:49

标签: sql

我在sql server数据库中有一堆表(都有一个特定的前缀,例如ABC_table1),我想把带有这个前缀的所有表移动到另一个数据库。

有没有办法可以做到这一点?

我正在使用SQL Server 2k5。

由于

2 个答案:

答案 0 :(得分:1)

弄清楚ABC模式的uid:

SELECT * from sys.schemas

然后在下面的脚本中用schema_id替换5(uid)并运行它:

SELECT 
    'SELECT * INTO OtherDB.ABC.' + name +
    ' FROM ABC.' + name
FROM 
    sysobjects 
WHERE 
    xtype = 'U' 
    AND uid = 5

然后剪切并粘贴生成的结果并运行它。或者,创建一个游标并sp_execute每一行。

答案 1 :(得分:0)

不确定术语在2k5中有多少变化,但这是2k术语中的说明。只需创建新数据库并执行从旧数据库到新数据库的导出。在导出向导中,您希望传输对象和数据。选择“对象”时,选择所有以ABC_开头的表,这很容易,因为它们按字母顺序列出。然后出口。

除非你想定期做这件事(我不明白为什么),否则我认为这可能是一次性操作的最简单的解决方案。