Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Amin

Новый участник


Сообщения: 38
Благодарности: 3

Профиль | Отправить PM | Цитировать


Ход совершенно правильный и корректный. В отличие от всяких DTS, вы всегда сможете свою процедуру отладить / поменять / корректно перенести на другой сервер.

Несколько моментов:
- имена объектов БД вы записали как-то странно У вас поля - в скобочках явно...
- пользователь dbo подразумевается "по умолчанию". Если вы ничего не мудрили с владельцами объектов, то вместо DB.dbo.table можете смело писать DB..table /* да, именно через ДВЕ точки !! */
- использовав в начале скрипта конструкцию USE DB; вы укажете текущую рабочую БД - и в этом случае в скрипте явно указывать потребуется только БД, отличную от текущей.
То есть ваше
Цитата:
BEGIN TRANSACTION
INSERT INTO TEST1.dbo.field1 (id, sd, wert, err, note) SELECT id, sd, wert, err, note FROM PRIMA.dbo.field WHERE id = 10
INSERT INTO TEST2.dbo.field1 (id, sd, wert, err, note) SELECT id, sd, wert, err, note FROM PRIMA.dbo.field WHERE id = 10
INSERT INTO TEST3.dbo.field1 (id, sd, wert, err, note) SELECT id, sd, wert, err, note FROM PRIMA.dbo.field WHERE id = 10
..........
COMMIT TRANSACTION
превратится в
Цитата:
BEGIN TRANSACTION
USE PRIMA;
INSERT INTO DB1 (id, sd, wert, err, note) SELECT id, sd, wert, err, note FROM table WHERE id = 10
INSERT INTO DB2 (id, sd, wert, err, note) SELECT id, sd, wert, err, note FROM table WHERE id = 10
INSERT INTO DB3 (id, sd, wert, err, note) SELECT id, sd, wert, err, note FROM table WHERE id = 10
..........
COMMIT TRANSACTION
Упрощайте свои скрипты ! SQL - тоже код, и обращение с ним должно быть соответствующим. (т.е. комментарии, использование переменных, выкидка откровенно лишнего кода (типа указания одной и той же БД 50 раз вместо одной команды USE), ясный синтаксис, и т.п.)

-------
xmpp:Aminux@jabber.ru

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:46, 01-02-2009 | #5