PDA

Просмотр полной версии : MSSQL. как запустить .sql-скрипт на сервере?



Monk
31.10.2004, 00:14
Плз помогите мне в этом, в общем-то, простом вопросе :).

Все факи излазил, но так и не разобрался :(.

Ситуация такова: у меня на локальном mssql server есть достаточно большая база (таблиц 5 по 3000 записей). Нужно скопировать её на удалённый сервер. Встроенный средства вроде export/import или sql query analyzer совершенно не подходят, потому что на dial up это похоже на форменное извращение.

Я экспортировал базу в .sql-скрипты, закачал их на сервер. На сервере Enterprise Manager'а и Sql Query Analyzer'а нет. Нашёл и установил на сервер в общем-то неплохую прогу EMS MS SQL Manager, с её помощью импортировал все скрипты... но! одна существенная проблема - при импортировании слетел чарсет :( то есть, то, что у меня на сервере было кириллицей, на удалённом сервере получилось в виде western (то есть латинские буквы с крышками). Как решить это, не нашёл :(. Конкурирующих программ тоже не особо...

Уже несколько дней мучаюсь. помогите, плз.

AiK
31.10.2004, 02:29
Monk, какой-то странный у тебя ход мыслей. Во-первых, не те объёмы, чтобы просто не залить данные по диалапу под транзакционным контролем, разбив предварительно данные скажем по 100 записей. Во-вторых, если ты имеешь доступ к серверу, то почему бы не поставить на него консоль? Хотя бы из 6-ки. На крайний случай isqlw. Ну и в третьих, кто тебе мешает воспользоваться утилиткой bcp?

Monk
16.11.2004, 21:52
AiK, давай тогда уж подробнее и по пунктам :).

Как залить данные под транзакционным контролем?

Что за консоль? где взять и как её поставить? как с диска поставить - представляю. Но у меня доступ только к удалённому рабочему столу.

Что есть isqlw и bcp?

AiK
17.11.2004, 16:23
Как залить данные под транзакционным контролем?
Оч просто. В начале скрипта пишешь BEGIN TRAN, а в конце COMMIT TRAN. Между ними всё что нужно.
В итоге у тебя либо все данные заносятся в базу, либо если коннект разорвётся - ни одного.

Что за консоль? где взять и как её поставить?

Консоль это то, что нынче Query Analizer'ом зовётся. Брать на диске с SQL 6.5 сервером. Устанавливается простым копированием exe файла и нескольких dll'ек.
Правильное название ISQL/w. Не исключено, что в сети можно найти.


Что есть isqlw и bcp?
С первым названием напутал. Просто isql.exe или даже лучше osql.exe - последняя через ODBC работает, а следовательно все фичи 2000-ного сервера поддерживает. Это command line утилитки, которые позволяют выполнять любые запросы к серверу.
bcp (от bulk copy) - утилитка для засасывания данных на сервер из текстовых файлов. Всё это добро лежит в папке /MSSQL/BINN/