Перемещение таблиц с определенным префиксом в новую базу данных

У меня есть несколько таблиц в базе данных сервера SQL (все с определенным префиксом, например, ABC_table1), и я хочу переместить ВСЕ таблицы с этим префиксом в другую базу данных.

Есть ли способ, которым это можно сделать?

Я использую SQL Server 2k5.

Спасибо

0 sql
11.12.2008 02:22:49
2 ОТВЕТА

Выясните UID схемы ABC:

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
11.12.2008 03:00:21

Не уверен, насколько сильно изменилась терминология в 2k5, но вот инструкции в терминологии 2k. Просто создайте новую базу данных и выполните экспорт из старой базы данных в новую. В мастере экспорта вы хотите перенести объекты и данные. При выборе ваших «объектов» выберите все таблицы, которые начинаются с ABC_, это легко, поскольку они перечислены в алфавитном порядке. А потом экспорт.

Если это не то, что вы хотите делать на регулярной основе (я не понимаю, почему), то я думаю, что это, вероятно, будет самым простым решением для одноразовой операции.

0
11.12.2008 03:07:03