Jak zarządzać programem SQL Server Desktop Engine (MSDE 2000) lub SQL Server 2005 Express Edition przy użyciu narzędzia Osql

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 325003 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

Streszczenie

Aparat SQL Server Desktop Engine (znany również jako MSDE 2000) nie ma własnego interfejsu użytkownika, ponieważ jest przeznaczony przede wszystkim do uruchamiania w tle. Użytkownicy współpracują z aparatem MSDE 2000 za pośrednictwem programu, w którym został on osadzony. Jedynym narzędziem dostarczanym z aparatem MSDE 2000 jest narzędzie osql. W przypadku domyślnego wystąpienia aparatu MSDE 2000 plik wykonywalny Sql.exe znajduje się w folderze MSSQL\Binn. W tym artykule skoncentrowano się na sposobie zarządzania aparatem MSDE 2000 przy użyciu narzędzia osql.

Jeżeli używany jest program SQL Server 2005, narzędzia osql można również używać do zarządzania programem SQL Server 2005 Express Edition. Ta funkcja zostanie jednak usunięta w przyszłej wersji programu Microsoft SQL Server 2005. Firma Microsoft zaleca zrezygnowanie z korzystania z tej funkcji podczas nowych prac deweloperskich i zaplanowanie modyfikacji aplikacji, które aktualnie korzystają z tej funkcji. Należy zamiast tego korzystać z narzędzia Sqlcmd. Aby uzyskać więcej informacji dotyczących sposobu korzystania z narzędzia Sqlcmd, odwiedź następującą witrynę usługi MSDN (Microsoft Developer Network) w sieci Web:
http://msdn2.microsoft.com/en-us/library/ms170207.aspx

Co to jest narzędzie Osql?

Narzędzie osql jest narzędziem wiersza polecenia Microsoft Windows 32, które umożliwia uruchamianie instrukcji języka Transact-SQL i plików skryptów. Narzędzie osql komunikuje się z serwerem przy użyciu interfejsu programowania aplikacji (API) baz danych ODBC.

Jak używać narzędzia Osql?

Zazwyczaj narzędzia osql jest używane w następujący sposób:
  • Użytkownicy interaktywnie wprowadzają instrukcje języka Transact-SQL, podobnie jak w przypadku pracy w wierszu polecenia.
  • Użytkownicy przesyłają zadanie osql:
    • Określając pojedyncze instrukcje języka Transact-SQL, które mają zostać uruchomione. -lub-

    • Wskazując narzędziu plik skryptu, który zawiera instrukcje języka Transact-SQL do uruchomienia.

Interaktywne wprowadzanie instrukcji języka Transact-SQL

W celu wyświetlenia listy opcji narzędzia osql (w przypadku tych opcji jest rozróżniana wielkość liter) należy wpisać następujące polecenie w wierszu polecenia, a następnie nacisnąć klawisz ENTER:

osql -?

Więcej informacji na temat poszczególnych opcji narzędzia osql zawiera temat „osql Utility” w dokumentacji SQL Server Books Online.

Aby interaktywnie wprowadzać instrukcje języka Transact-SQL, należy wykonać następujące kroki:

  1. Sprawdź, czy aparat MSDE 2000 jest uruchomiony.
  2. Połącz się z aparatem MSDE 2000 (aby uzyskać więcej informacji, zobacz sekcję zatytułowaną „Łączenie się z aparatem SQL Server Desktop Engine (MSDE 2000)”).
  3. W wierszu polecenia narzędzia osql wpisz instrukcje języka Transact-SQL, a następnie naciśnij klawisz ENTER. Po naciśnięciu klawisza ENTER na końcu każdego wiersza wprowadzania narzędzie osql buforuje instrukcje podane w tym wierszu.

    • Aby uruchomić aktualnie zbuforowane instrukcje, wpisz „Go”, a następnie naciśnij klawisz ENTER.

    • Aby uruchomić pakiet instrukcji języka Transact-SQL, wprowadź wszystkie polecenia języka Transact-SQL w oddzielnych wierszach. Następnie w ostatnim wierszu wpisz „Go”, aby zasygnalizować koniec pakietu i uruchomić aktualnie zbuforowane instrukcje.

    W oknie konsoli pojawią się wyniki.

  4. Aby zamknąć narzędzie osql, wpisz polecenie QUIT lub EXIT, a następnie naciśnij klawisz ENTER.

Przesyłanie zadania Osql

Zazwyczaj zadanie osql jest przesyłane w jeden z dwóch sposobów. Można:
  • Określić pojedynczą instrukcję języka Transact-SQL.

    -lub-

  • Wskazać narzędziu plik skryptu.
Poniżej przedstawiono więcej informacji na temat każdej z tych metod.

Określanie pojedynczej instrukcji języka Transact-SQL

Aby uruchomić instrukcję języka Transact-SQL przy użyciu lokalnego domyślnego wystąpienia aparatu MSDE 2000, należy wpisać polecenie podobne do następującego

osql -E -q „Instrukcja języka Transact-SQL”

gdzie

  • -E powoduje korzystanie z uwierzytelniania systemu Microsoft Windows NT.

    -oraz-

  • -q powoduje uruchomienie instrukcji języka Transact-SQL, ale nie powoduje zakończenia pracy z narzędziem osql po wykonaniu kwerendy.
Aby uruchomić instrukcję języka Transact-SQL i zakończyć pracę z narzędziem osql, należy użyć argumentu -Q zamiast -q.

Wskazywanie narzędziu pliku skryptu

Aby wskazać narzędziu plik skryptu, należy wykonać następujące kroki:
  1. Utwórz plik skryptu, który zawiera pakiet instrukcji języka Transact-SQL (na przykład mojeKwerendy.sql).
  2. Otwórz wiersz polecenia, wpisz polecenie podobne do poniższego, a następnie naciśnij klawisz ENTER

    osql -E -i plik_wejściowy

    gdzie

    plik_wejściowy oznacza pełną ścieżkę pliku skryptu. Na przykład, jeśli plik skryptu mojeKwerendy.sql znajduje się w folderze C:\Queries, należy zastąpić parametr plik_wejściowy ścieżką C:\Queries\mojeKwerendy.sql.

    Wyniki działania skryptu zostaną wyświetlone w oknie konsoli. Aby zapisać wyniki bezpośrednio w pliku, należy do poprzedniego polecenia dodać argument -o plik_wyjściowy. Na przykład:

    osql -E -i plik_wejściowy -o plik_wyjściowy

    gdzie

    plik_wyjściowy oznacza pełną ścieżkę pliku wyjściowego.

    Aby usunąć numerację i symbole poleceń w pliku wyjściowym, należy do poprzedniego polecenia dodać opcję -n. Na przykład:

    osql -E -i plik_wejściowy -o plik_wyjściowy -n

Łączenie się z aparatem SQL Server Desktop Engine (MSDE 2000)

Aby połączyć się z aparatem MSDE 2000, należy wykonać następujące kroki:
  1. Sprawdź, czy aparat MSDE 2000 jest uruchomiony.
  2. Otwórz wiersz polecenia na komputerze, na którym znajduje się wystąpienie aparatu MSDE 2000, z którym chcesz się połączyć.
  3. Wpisz następujące polecenie, a następnie naciśnij klawisz ENTER:

    osql -E

    Spowoduje to połączenie z lokalnym domyślnym wystąpieniem aparatu MSDE 2000 przy użyciu funkcji uwierzytelniania systemu Windows.

    Aby połączyć się z określonym wystąpieniem aparatu MSDE 2000, należy wpisać:

    osql -E -S nazwa_serwera\nazwa_wystąpienia

    Jeśli wyświetlany jest poniższy komunikat o błędzie, może to oznaczać, że aparat MSDE 2000 nie jest uruchomiony lub została podana nieprawidłowa nazwa określonego wystąpienia zainstalowanego aparatu MSDE 2000:
    [Shared Memory]Serwer SQL nie istnieje lub odmówiono do niego dostępu..
    [Shared Memory]ConnectionOpen (Connect()).
    Po pomyślnym połączeniu się z serwerem zostanie wyświetlony następujący wiersz:

       1>
    						
    Wiersz ten oznacza, że narzędzie osql zostało uruchomione. Od tej pory można interaktywnie wprowadzać instrukcje języka Transact-SQL, a wyniki będą wyświetlane w wierszu polecenia.

Zarządzanie aparatem MSDE 2000

Pozostałe sekcje tego artykułu zawierają krótki opis poleceń języka Transact-SQL najczęściej używanych do zarządzania aparatem MSDE 2000.

Tworzenie nowej nazwy logowania

Użytkownik nie może połączyć się z programem SQL bez podania prawidłowego identyfikatora logowania. Jako nazwa logowania do programu SQL Server, umożliwiająca łączenie się z wystąpieniem programu SQL Server przy użyciu uwierzytelniania systemu Windows, używana jest zapisana procedura sp_grantlogin, która służy do autoryzacji konta sieciowego (zarówno konta grupy, jak i konta użytkownika) w systemie Microsoft Windows. Następujący przykład pozwala użytkownikowi systemu Windows NT o nazwie Firma\Test na połączenie się z wystąpieniem programu SQL Server:
EXEC sp_grantlogin 'Corporate\Test'
				
Tylko członkowie stałych ról na serwerze sysadmin lub securityadmin mogą uruchamiać zapisaną procedurę sp_grantlogin. Aby uzyskać więcej informacji na temat ról, zobacz temat „Roles, SQL Server Architecture” w dokumentacji SQL Server Books Online.

Aby uzyskać więcej informacji na temat zapisanej procedury sp_grantlogin, zobacz temat „sp_grantlogin, Transact-SQL Reference” w dokumentacji SQL Server Books Online.

Zapisana procedura sp_addlogin służy do tworzenia nowego konta logowania przeznaczonego dla połączeń z programem SQL Server przy użyciu opcji Uwierzytelnianie serwera SQL. W poniższym przykładzie utworzono nazwę logowania do programu SQL Server dla użytkownika o nazwie „test” z hasłem „halo”:
EXEC sp_addlogin 'test','hello'
				
Tylko członkowie stałych ról na serwerze sysadmin i securityadmin mogą uruchamiać zapisaną procedurę sp_addlogin. Aby uzyskać więcej informacji na temat zapisanej procedury sp_addlogin, zobacz temat „sp_addlogin, Transact-SQL Reference” w dokumentacji SQL Server Books Online.

Uzyskiwanie dostępu do bazy danych

Po połączeniu się z wystąpieniem programu SQL Server użytkownicy nie mogą wykonywać działań w bazie danych, dopóki właściciel bazy danych dbo nie przyzna im dostępu do tej bazy. Konto zabezpieczeń dla nowego użytkownika można dodać do bieżącej bazy danych przy użyciu zapisanej procedury sp_grantdbaccess. W poniższym przykładzie do bieżącej bazy danych dodano konto dla użytkownika systemu Microsoft Windows NT o nazwie Firma\RobertK i nadano mu nazwę „Robert”:
EXEC sp_grantdbaccess 'Corporate\BobJ', 'Bob'
				

Zapisana procedura sp_adduser pełni takie same funkcje, jak zapisana procedura sp_grantdbaccess. Ponieważ procedura sp_adduser została dołączona w celu zapewnienia zgodności wstecznej, firma Microsoft zaleca stosowanie zapisanej procedury sp_grantdbacess.

Tylko członkowie stałej roli na serwerze sysadmin oraz stałych ról w bazie danych db_accessadmin i db_owner mogą uruchamiać zapisaną procedurę sp_grantdbaccess. Aby uzyskać więcej informacji na temat zapisanej procedury sp_grantdbaccess, zobacz temat „sp_grantdbaccess, Transact-SQL Reference” w dokumentacji SQL Server Books Online.

Jak zmienić hasło dla nazwy logowania

Do zmiany hasła nazwy logowania służy zapisana procedura sp_password. W poniższym przykładzie zmieniono hasło dla nazwy logowania „test” z „ok” na „halo”:
EXEC sp_password 'ok', 'hello','test'
				

Korzystając z uprawnień domyślnych dla publicznej roli użytkownika, użytkownik może zmienić hasło dla własnej nazwy logowania. Tylko członkowie roli sysadmin mogą zmienić hasło dla nazwy logowania innego użytkownika. Aby uzyskać więcej informacji na temat zapisanej procedury sp_password, zobacz temat „sp_password, Transact-SQL Reference” w dokumentacji SQL Server Books Online

Tworzenie bazy danych

Baza danych MSDE 2000 składa się ze zbioru tabel zawierających dane i inne obiekty, takie jak widoki, indeksy, zapisane procedury i wyzwalacze, które zostały zdefiniowane w celu ułatwienia działań wykonywanych na danych. Do utworzenia bazy danych MSDE 2000 służy polecenie „CREATE DATABASE” języka Transact-SQL. Aby uzyskać więcej informacji dotyczących sposobu tworzenia bazy danych, zobacz temat „Creating a Database” (Tworzenie bazy danych) w dokumentacji SQL Server Books Online.

W poniższym przykładzie utworzono bazę danych o nazwie Test. Ponieważ do polecenia nie zostały dodane żadne dodatkowe parametry, baza danych Test będzie miała taki sam rozmiar, jak modelowa baza danych:
CREATE DATABASE Test
				
Domyślnie uprawnienie CREATE DATABASE mają członkowie stałych ról na serwerze sysadmin i dbcreator. Aby uzyskać więcej informacji na temat polecenia „CREATE DATABASE”, zobacz temat „CREATE DATABASE, Transact-SQL Reference” w dokumentacji SQL Server Books Online.

Do utworzenia nowego obiektu bazy danych służy polecenie CREATE języka Transact-SQL. Na przykład aby utworzyć nową tabelę, należy użyć polecenia „CREATE TABLE” języka Transact-SQL. Więcej informacji można znaleźć w dokumentacji SQL Server Books Online.

Wykonywanie kopii zapasowych i przywracanie baz danych

Składnik programu SQL Server służący do tworzenia kopii zapasowych i przywracania baz danych zapewnia istotną ochronę ważnych danych przechowywanych w bazach danych programu SQL Server.

Właściwe planowanie umożliwia odzyskanie danych utraconych w wyniku takich problemów, jak:
  • Uszkodzenie nośnika.
  • Błędy użytkownika.
  • Trwała utrata serwera.
Ponadto tworzenie kopii zapasowych i przywracanie baz danych jest także użyteczne w innych celach, takich jak kopiowanie bazy danych z serwera na serwer. Tworząc kopię zapasową na jednym komputerze i przywracając ją na innym, można szybko i łatwo wykonać kopię bazy danych.

Aby uzyskać więcej informacji na temat operacji tworzenia kopii zapasowych i przywracania baz danych, zobacz temat „Backing Up and Restoring Databases” w dokumentacji SQL Server Books Online.

W poniższym przykładzie utworzono pełną kopię bazy danych o nazwie mojabd, nadano kopii zapasowej nazwę Mojabd.bak, a następnie zapisano kopię zapasową w folderze C:\Msde\Backup folder:

BACKUP DATABASE mojabd TO DISK = 'C:\MSDE\Backup\mojabd.bak'
				

W poniższym przykładzie utworzono kopię zapasową dziennika bazy danych o nazwie mojabd, nadano kopii zapasowej nazwę Mojabd_dziennik.bak, a następnie zapisano ją w folderze C:\Msde\Backup:

BACKUP LOG mojabd TO DISK = 'C:\MSDE\Backup\mojabd_dziennik.bak'
				

Domyślnie uprawnienia BACKUP DATABASE i BACKUP LOG mają członkowie stałej roli na serwerze sysadmin oraz stałych ról w bazie danych db_owner i db_backupoperator. Aby uzyskać więcej informacji na temat instrukcji BACKUP, zobacz temat „BACKUP, Transact-SQL Reference” w dokumentacji SQL Server Books Online.


Aparat MSDE zawiera usługę SQL Server Agent umożliwiającą zarządzanie zaplanowanymi zadaniami. Na przykład można utworzyć i zaplanować zadanie tworzenia kopii zapasowej w języku Transact-SQL. Usługa SQL Server Agent Service zarządza planowaniem zadań. Aby uzyskać przykładowy kod ilustrujący sposób korzystania z różnych zapisanych procedur aparatu MSDE 2000 w celu utworzenia kopii zapasowej i zaplanowania tej operacji, zobacz następujący artykuł w bazie wiedzy Microsoft Knowledge Base:
241397 How To Back Up a Microsoft Data Engine Database with Transact-SQL
Aby uzyskać więcej informacji na temat usługi SQL Server Agent Service, zobacz temat „SQL Server Agent Service” w dokumentacji SQL Server Books Online.

Utworzenie kopii zapasowej bazy danych stanowi tylko połowę procesu. Ważne jest, aby wiedzieć, jak przywrócić bazę danych z kopii zapasowej. W poniższym przykładzie przywrócono bazę danych o nazwie mojabd z pliku kopii zapasowej C:\Msde\Backup\Mojabd.bak:

RESTORE DATABASE mojabd FROM DISK ='C:\MSDE\Backup\mojabd.bak'
				
Jeśli przywracana baza danych nie istnieje, użytkownik musi mieć uprawnienia CREATE DATABASE, aby uruchomić instrukcję RESTORE. Jeśli baza danych istnieje, domyślnie uprawnienia RESTORE mają członkowie stałych ról na serwerze sysadmin i dbcreator oraz właściciel bazy danych (dbo). Aby uzyskać więcej informacji na temat instrukcji RESTORE, zobacz temat „RESTORE, Transact-SQL Reference” w dokumentacji SQL Server Books Online.

Podłączanie i odłączanie bazy danych

Dane i pliki dziennika transakcji bazy danych można odłączyć, a następnie ponownie podłączyć do innego lub nawet do tego samego serwera. Odłączenie bazy danych powoduje usunięcie bazy danych z programu SQL Server, ale dane i pliki dziennika transakcji składające się na tę bazę pozostają nienaruszone. Przy użyciu tych danych oraz plików dziennika transakcji można następnie podłączyć bazę danych do dowolnego wystąpienia programu SQL Server, w tym również do serwera, od którego baza danych została odłączona. Po wykonaniu tej operacji baza danych jest dostępna dokładnie w takim samym stanie, w jakim była w chwili odłączenia. Aby uzyskać więcej informacji, zobacz temat „Attaching and Detaching a Database” (Podłączanie i odłączanie bazy danych) w dokumentacji SQL Server Books Online.

W poniższym przykładzie od bieżącego wystąpienia programu SQL Server odłączono bazę danych o nazwie mojabd:
EXEC sp_detach_db 'mojabd'
				
Tylko członkowie stałej roli na serwerze sysadmin mogą uruchamiać zapisaną procedurę sp_detach_db. Aby uzyskać więcej informacji na temat zapisanej procedury sp_detach_db, zobacz temat „sp_detach_db, Transact-SQL Reference” w dokumentacji SQL Server Books Online.

W poniższym przykładzie do bieżącego wystąpienia programu SQL Server podłączono dwa pliki z bazy danych o nazwie mojabd:
EXEC sp_attach_db @dbname = N'mojabd', 
   @filename1 = N'C:\MSDE\Backup\mojabd.mdf', 
   @filename2 = N'C:\MSDE\Backup\mojabd.ldf'
				
Wielka litera N służy jako prefiks stałej ciągu Unicode. Prefiks „N” w standardzie SQL-92 oznacza język narodowy (ang. National Language). Aby uzyskać więcej informacji, zobacz następujący artykuł w bazie wiedzy Microsoft Knowledge Base:
239530 INF: Unicode String Constants in SQL Server Require N Prefix
Tylko członkowie stałych ról na serwerze sysadmin i dbcreator mogą uruchamiać tę procedurę. Aby uzyskać więcej informacji na temat zapisanej procedury sp_attach_db, zobacz temat „sp_attach_db, Transact-SQL Reference” w dokumentacji SQL Server Books Online.

Poniższe informacje na temat korzystania z narzędzia osql dotyczą także wszystkich wydań programu Microsoft SQL Server 2000.

Materiały referencyjne

Aby pobrać zaktualizowaną wersję dokumentacji SQL Server 2000 Books Online, odwiedź następującą witrynę firmy Microsoft w sieci Web:
http://www.microsoft.com/sql/techinfo/books.mspx
Aby pobrać wersję SQL Server 7.0 dokumentacji SQL Server Books Online, odwiedź następującą witrynę firmy Microsoft w sieci Web:
http://download.microsoft.com/download/SQL70/File/2/Win98/En-US/SQLBOL.exe
Aby uzyskać więcej informacji na temat aparatu MSDE 2000, zobacz następujące artykuły w bazie wiedzy Microsoft Knowledge Base:
319930 How To Connect to Microsoft Desktop Engine
241397 How To Back Up a Microsoft Desktop Engine Database with Transact-SQL

Właściwości

Numer ID artykułu: 325003 - Ostatnia weryfikacja: 30 marca 2007 - Weryfikacja: 2.1
Informacje zawarte w tym artykule dotyczą:
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Desktop Engine (MSDE) SP3a
Słowa kluczowe: 
kbdownload kbhowtomaster KB325003
Zastrzeżenie dotyczące artykułów z bazy wiedzy o produktach wycofanych
Ten artykuł dotyczy produktów, dla których firma Microsoft nie oferuje już pomocy technicznej. Dlatego jest on oferowany w obecnej wersji i nie będzie już aktualizowany.

Przekaż opinię

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com