Como gerenciar o Mecanismo de área de trabalho do SQL Server (MSDE 2000) ou do SQL Server 2005 Express Edition usando o utilitário osql

Traduções deste artigo Traduções deste artigo
ID do artigo: 325003 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Mecanismo de área de trabalho do SQL Server (também conhecido como MSDE 2000) não tem sua própria interface do usuário porque foi projetada principalmente para execução no plano de fundo. Usuários interagem com o MSDE 2000 através do programa no qual está embutido. A única ferramenta fornecida com o MSDE 2000 é o utilitário osql. O arquivo executável, Sql.exe, está localizado na pasta MSSQL\Binn em uma instância padrão do MSDE 2000. Este artigo se concentra em como gerenciar o MSDE 2000 usando o utilitário osql.

Se estiver usando o SQL Server 2005 também é possível usar o utilitário osql para gerenciar o SQL Server 2005 Express Edition. Entretanto, este recurso será removido em uma versão futura do Microsoft SQL Server 2005. Recomendamos que você não use este recurso em um novo planejamento e trabalho de desenvolvimento e planeje modificar aplicações que atualmente usam o recurso. Ao contrário, use o utilitário Sqlcmd. Para obter mais informações sobre como usar o utilitário Sqlcmd, visite o seguinte site do Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/ms170207.aspx

O que é Osql?

O utilitário osql é um prompt de comando do Microsoft Windows 32 que pode ser usado para executar declarações e arquivos de script do Transact-SQL. O utilitário osql usa a interface de programa aplicativo (API) do banco de dados ODBC para comunicação com o servidor.

Como usar o Osql?

Geralmente, o utilitário osql é usado destas maneiras:
  • Usuários inserem declarações do Transact-SQL de forma interativa de maneira similar ao funcionamento do prompt de comando.
  • Os usuários enviam um trabalho do osql:
    • Especificando uma única declaração do Transact-SQL para execução. -ou-

    • -ou- apontando o utilitário para um arquivo de script que contenha declarações do Transact-SQL para execução.

Inserir declarações do Transact-SQL de forma interativa

Para exibir uma lista de opções que diferenciam maiúsculas e minúsculas do utilitário osql, digite o seguinte em um prompt de comando e pressione ENTER:

osql -?

Para obter mais informações sobre cada opção do utilitário osql, consulte o tópico "Utilitário osql" nos Manuais online do SQL Server.

Para inserir declarações Transact-SQL de forma interativa, siga estas etapas:

  1. Verifique se o MSDE 2000 está em execução.
  2. Conecte com o MSDE 2000 (para obter mais informações, consulte a seção "Conectar com o Mecanismo de área de trabalho do SQL Server (MSDE 2000)").
  3. No prompt osql, digite declarações do Transact-SQL e pressione ENTER. Ao pressionar ENTER ao final de cada linha de entrada, o osql faz o cache das declarações em cada linha.

    • Para executar as declarações já no cache, digite "Go" e pressione ENTER.

    • Para executar um lote de declarações Transact-SQL, insira cada comando do Transact-SQL em linhas separadas. Depois, digite "Go" na última linha para sinalizar o final do lote e executar as declarações em cache no momento.

    Os resultados serão exibidos na janela do console.

  4. Para sair do osql, digite QUIT ou EXIT e pressione ENTER.

Enviar um trabalho do Osql

Geralmente, você envia um trabalho do osql de uma das duas maneiras. É possível:
  • Especifique uma única declaração do Transact-SQL.

    -ou-

  • -ou- Aponte o utilitário para um arquivo de script.
Aqui há mais informações sobre cada método.

Especifique uma única declaração do Transact-SQL.

Para executar uma declaração do Transact-SQL em uma instância padrão local do MSDE 2000, digite um comando semelhante ao seguinte:

osql -E -q "Transact-SQL statement"

no qual

  • -E usa autenticação do Microsoft Windows NT.

    -e-

  • -q executa a declaração Transact-SQL, mas não encerra o osql ao concluir a consulta.
Para executar a declaração Transact-SQL e encerrar o osql, use o argumento -Q em vez do -q.

Aponte o utilitário para um arquivo de script

Para apontar o utilitário para um arquivo de script, execute as seguintes etapas:
  1. Crie um arquivo de script que contenha um lote de declarações do Transact-SQL (como myQueries.sql).
  2. Abra um prompt de comando, digite um comando similar ao seguinte e pressione ENTER:

    osql -E -i input_file

    no qual

    input_file representa o caminho completo do arquivo de script. Por exemplo, se o arquivo de script myQueries.sql estiver localizado nas pasta C:\Queries, substitua o parâmetro input_file por C:\Queries\myQueries.sql.

    Os resultados do arquivo de script são exibidos na janela do console. Se deseja direcionar os resultados para um arquivo, adicione o argumento -ooutput_file para um comando demonstrado anteriormente. Por exemplo:

    osql -E -i input_file -o output_file

    no qual

    output_file representa o caminho completo do arquivo de saída.

    Para remover os símbolos de numeração e prompt na saída, adicione a opção -n ao comando demonstrado anteriormente. Por exemplo:

    osql -E -i input_file -o output_file -n

Conectar com o Mecanismo de área de trabalho do SQL Server (MSDE 2000)

Para conectar-se ao MSDE 2000, execute as seguintes etapas:
  1. Verifique se o MSDE 2000 está em execução.
  2. Abra um prompt de comando no computador que está hospedando a instância do MSDE 2000 com o qual você deseja conectar.
  3. Digite o seguinte comando e pressione ENTER.

    osql -E

    Isso o conecta com a instância local padrão do MSDE 2000 usando a Autenticação do Windows.

    Para conectar com uma instância nomeada do MSDE 2000, digite:

    osql -E -S servername\instancename

    Se a seguinte mensagem de erro for exibida, o MSDE 2000 talvez não esteja respondendo ou você tenha fornecido nome incorreto para a instância nomeada do MSDE 2000 instalada:
    [Memória compartilhada]O SQL Server não existe ou o acesso foi negado.
    [Memória compartilhada]ConnectionOpen (Connect()).
    Se estiver conectado com êxito ao servidor, o seguinte prompt será exibido:

       1>
    						
    Este prompt indica que o osql foi iniciado. Agora, é possível inserir declarações Transact-SQL de maneira interativa e os resultados serão exibidos na linha do prompt de comando.

Gerenciar o MSDE 2000

As demais seções deste artigo apresentam rapidamente os comandos Transact-SQL usados com mais freqüência para gerenciar o MSDE 2000.

Criar um novo logon

Um usuário não pode estabelecer uma conexão com o SQL Server sem fornecer uma identificação de logon válida. O procedimento armazenado sp_grantlogin é usado para autorizar uma conta de rede do Microsoft Windows (um grupo ou uma conta de usuário) para uso, assim como um logon do SQL Server para conexão com uma instância do SQL Server usando a Autenticação do Windows. O seguinte exemplo permite que um usuário do Windows NT chamado Corporate\Test se conecter à instância do SQL Server:
EXEC sp_grantlogin 'Corporate\Test'
				
Somente membros das funções de servidor fixas sysadmin ou securityadmin podem executar o procedimento armazenado sp_grantlogin. Para obter mais informações sobre as funções, consulte o tópico "Funções, Arquitetura do SQL Server" nos Manuais online do SQL Server.

Para obter mais informações sobre o procedimento armazenado sp_grantlogin, consulte o tópico "sp_grantlogin, referência do Transact-SQL" nos Manuais online do SQL Server.

Você usa o procedimento armazenado sp_addlogin para criar uma conta de novo logon para conexões do SQL Server usando a Autenticação do SQL Server. O seguinte exemplo cria um logon do SQL Server para um usuário chamado "test" com a senha "hello":
EXEC sp_addlogin 'test','hello'
				
Somente membros das funções de servidor fixas sysadmin e securityadmin podem executar o procedimento armazenado sp_addlogin. Para obter mais informações sobre o procedimento armazenado sp_addlogin, consulte o tópico "sp_addlogin, referência do Transact-SQL" nos Manuais online do SQL Server.

Acessar um banco de dados

Após o usuário conectar com uma instância do SQL Server, eles não podem realizar atividades em um banco de dados até que o dbo conceda acesso para o banco de dados. É possível usar o procedimento armazenado sp_grantdbaccess para adicionar uma conta de segurança para um novo usuário ao banco de dados atual. O exemplo a seguir adiciona uma conta para um usuário do Microsoft Windows NT nomeado Corporate\BobJ ao banco de dados atual e o chama de "Bob":
EXEC sp_grantdbaccess 'Corporate\BobJ', 'Bob'
				

O procedimento armazenado sp_adduser efetua a mesma função, assim como o procedimento armazenado sp_grantdbaccess. Como o procedimento armazenado sp_adduser está incluído para compatibilidade reversa, a Microsoft recomenda que você use o procedimento armazenado sp_grantdbacess.

Somente membros da função do servidor fixo sysadmin, db_accessadmin e db_owner podem executar o procedimento armazenado sp_grantdbaccess. Para obter mais informações sobre o procedimento armazenado sp_grantdbaccess, consulte o tópico "sp_grantdbaccess, referência do Transact-SQL" nos Manuais online do SQL Server.

Como alterar a senha para um logon

Para alterar a senha de um logon, use o procedimento armazenado sp_password. O exemplo a seguir altera a senha do logon "test" de "ok" para "hello":
EXEC sp_password 'ok', 'hello','test'
				

Executar permissões padrão da função pública de um usuário que está alterando seu logon. Somente membros da função sysadmin podem alterar a senha para o logon de outro usuário. Para obter mais informações sobre o procedimento armazenado sp_password, consulte o tópico "sp_password, referência do Transact-SQL" nos Manuais online do SQL Server.

Criar um banco de dados

Um banco de dados MSDE 2000 é feito de uma coleção de tabelas que contêm dados e outros objetos, como exibições, índices, procedimentos armazenados e acionadores, os quais são definidos para oferecer suporte para atividades realizadas com os dados. Para criar um banco de dados MSDE 2000, use o comando Transact-SQL "CREATE DATABASE". Para obter mais informações sobre a criação de um banco de dados, consulte o tópico "Criando um banco de dados" nos Manuais online do SQL Server.

O exemplo a seguir cria um banco de dados chamado Test. Como não há parâmetros adicionais adicionados ao comando, o banco de dados Test será do mesmo tamanho do banco de dados model:
CREATE DATABASE Test
				
A permissão CREATE DATABASE se torna padrão para membros das funções fixas do servidor sysadmin e dbcreator. Para obter mais informações sobre o comando "CREATE DATABASE", consulte o tópico "CREATE DATABASE, referência do Transact-SQL" nos Manuais online do SQL Server.

Para criar um novo objeto de banco de dados, use o comando Transact-SQL "CREATE". Por exemplo, para criar uma nova tabela, use o comando Transact-SQL "CREATE TABLE". Para obter mais informações, consulte os Manuais online do SQL Server.

Fazer backup e restaurar bancos de dados

O componente de backup e restauração do SQL Server fornece uma segurança importante para proteger dados críticos armazenados nos bancos de dados do SQL Server.

Com o planejamento apropriado, é possível recuperar de muitas falhas, incluindo:
  • Falha da mídia.
  • Erros do usuário.
  • Perda permanente de um servidor.
Além disso, fazer backup e restaurar bancos de dados é útil para outros propósitos, como copiar um banco de dados de um servidor para outro. Ao fazer o backup de um banco de dados de um computador e restaurar um banco de dados para outro, fica fácil aprender como fazer uma cópia de um banco de dados.

Para obter mais informações sobre operações de backup e restauração de banco de dados, consulte o tópico "Fazendo backup e restaurando bancos de dados" nos Manuais online no SQL Server.

O exemplo a seguir realiza um backup completo de um banco de dados chamado mydb, nomeia o backup como Mydb.bak e armazena o backup na pasta C:\Msde\Backup:

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

O exemplo a seguir realiza um backup de log de um banco de dados chamado mydb, nomeia o backup como Mydb_log.bak e armazena o backup na pasta C:\Msde\Backup:

BACKUP LOG mydb TO DISK = 'C:\MSDE\Backup\mydb_log.bak'
				

As permissões BACKUP DATABASE e BACKUP LOG se tornam padrão para membros das funções fixas do servidor sysadmin, db_owner e db_backupoperator. Para obter mais informações sobre a declaração BACKUP, consulte o tópico "BACKUP, referência do Transact-SQL" nos Manuais online do SQL Server.


O MSDE inclui o Serviço do SQL Server Agent para o gerenciamento de trabalhos programados. Por exemplo, é possível criar e programas um trabalho de backup do Transact-SQL. O Serviço do SQL Server Agent gerencia a programação do trabalho. Para um código de amostra sobre como usar os vários procedimentos armazenados com o MSDE 2000 para realizar um backup e programar um backup, clique no seguinte número para ler o artigo na Base de Dados de Conhecimento Microsoft (a página pode estar em inglês):
241397 Como fazer backup de um banco de dados do Microsoft Data Engine com Transact-SQL
Para obter mais informações sobre o Serviço do SQL Server Agent, consulte o tópico "Serviço do SQL Server Agent" nos Manuais online do SQL Server.

Fazer o backup de um banco de dados é somente metade do processo. É importante saber como restaurar o banco de dados de um backup. O exemplo a seguir restaura um banco de dados chamado mydb do arquivo de backup C:\Msde\Backup\Mydb.bak:

RESTORE DATABASE mydb FROM DISK ='C:\MSDE\Backup\mydb.bak'
				
Se o banco de dados sendo restaurado não existir, será necessário que o usuário tenha permissões CREATE DATABASE para executar a declaração RESTORE. Se o banco de dados existir, as permissões RESTORE se tornarão padrão para membros das funções fixas do servidor sysadmin e dbcreator e para o proprietário (dbo) do banco de dados. Para obter mais informações sobre a declaração RESTORE, consulte o tópico "RESTORE, referência do Transact-SQL" nos Manuais online do SQL Server.

Anexar e desanexar um banco de dados

É possível desanexar e anexar novamente os arquivos log de dados e transação de um banco de dados em outro servidor, ou até mesmo no mesmo servidor. Desanexar um banco de dados removerá o banco dedados do SQL Server, mas deixará o banco de dados intacto nos arquivos de log de dados e transação que compõem o banco de dados. Aí é possível usar esses arquivos de log de dados e transação para anexar o banco de dados para qualquer instância do SQL Server, incluindo o servidor do qual o banco de dados foi desanexado. Isso torna o banco de dados disponível exatamente no mesmo estado em que se encontrava quando havia sido desanexado. Para obter mais informações, consulte o tópico "Anexando e desanexando um banco de dados" nos Manuais online do SQL Server.

O exemplo a seguir desanexa um banco de dados chamado mydb da atual instância do SQL Server:
EXEC sp_detach_db 'mydb'
				
Somente membros da função fixa de servidor sysadmin podem executar o procedimento armazenado sp_detach_db. Para obter mais informações sobre o procedimento armazenado sp_detach_db, consulte o tópico "sp_detach_db, referência do Transact-SQL" nos Manuais online do SQL Server.

O exemplo a seguir anexa dois arquivos de um banco de dados chamado mydb da atual instância do SQL Server:
EXEC sp_attach_db @dbname = N'mydb', 
   @filename1 = N'C:\MSDE\Backup\mydb.mdf', 
   @filename2 = N'C:\MSDE\Backup\mydb.ldf'
				
A letra maiúscula N é usada como prefixo de uma constante Unicode String. O prefixo "N" significa "National Language" (idioma loca) no padrão SQL-92. Para obter mais informações, clique no seguinte número para ler o artigo na Base de Dados de Conhecimento Microsoft (a página pode estar em inglês):
239530 INF: Constantes Unicode String no SQL Server exigem prefixo N
Somente membros das funções fixas de servidor sysadmin e dbcreator podem executar este procedimento. Para obter mais informações sobre o procedimento armazenado sp_attach_db, consulte o tópico "sp_attach_db, referência do Transact-SQL" nos Manuais online do SQL Server.

As seguintes informações sobre o uso do utilitário osql também são aplicáveis a todas as edições do Microsoft SQL Server 2000.

Referências

Para baixar uma versão atualizada dos Manuais online do SQL Server 2000, visite o seguinte site da Microsoft (em inglês):
http://www.microsoft.com/sql/techinfo/books.mspx
Para baixar a versão 7.0 dos Manuais online do SQL Server, visite o seguinte site da Microsoft:
http://download.microsoft.com/download/SQL70/File/2/Win98/En-US/SQLBOL.exe
Para obter mais informações sobre o MSDE 2000, clique nos seguintes números para ler os artigos na Base de Dados de Conhecimento Microsoft (alguns artigos podem estar em inglês):
319930 Como conectar com o Mecanismo de área de trabalho da Microsoft
241397 Como fazer backup de um banco de dados do Mecanismo de área de trabalho da Microsoft com Transact-SQL

Propriedades

ID do artigo: 325003 - Última revisão: quinta-feira, 22 de março de 2007 - Revisão: 2.1
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Desktop Engine (MSDE) SP3a
Palavras-chave: 
kbdownload kbhowtomaster KB325003
Aviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.

Submeter comentários

 

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