No servidor SQL, como " use <>", como "usar < >" comando de pesquisa

no servidor SQL, como use <<DatabaseName>>, como dar use <<ServerName>> o comando de pesquisa?

o botão direito do rato | mudança de ligação deve estar associado a algum comando. Não é? Curioso..

Author: Sunny Patel, 2014-04-25

3 answers

Quando se liga ao servidor Sql, está a ligar-se a uma instância específica do servidor. Uma instância de servidor pode hospedar uma série de bancos de dados diferentes. O comando USE Database permite-lhe dizer ao servidor Sql qual a base de dados nessa instância a usar.

Um comando USE Server correspondente não faz sentido. Outras instâncias do servidor não estão conectadas a ou parte desta instância. Quando você se conectou a este servidor, você teve que fornecer credenciais que podem ou não ser válidas em outros servidores, e as melhores práticas de autenticação recomendam contra a preservação dessas credenciais durante uma sessão, o que significa que não tem como voltar a autorizar sua conexão com um servidor diferente.

O que pode fazer é criar um servidor ligado, usando o procedimento sp_ addlinkedserver. Então você deve incluir o nome do servidor como parte do nome da tabela totalmente qualificado com cada consulta.

 3
Author: Joel Coehoorn, 2014-04-25 16:01:26

Se estiver a tentar mudar completamente as ligações dentro de um ÚNICO programa e trabalhar com uma nova ligação em vez de partilhar dados entre ligações, então poderá fazê-lo com o modo SQLCMD. Isto é específico para o SQL Server Management Studio (SSMS) como o modo SQLCMD é diretivas para o SSMS e não algo que o motor de banco de dados estará executando.

Você poderá activar o modo SQLCMD por sessão, indo ao menu Query e seleccionando o modo SQLCMD . Logo que o modo SQLCMD esteja activo, poderá alterar as ligações usando o comando :connect:

SELECT @@SERVERNAME AS [ServerName], DB_NAME() AS [DbName]
GO
:connect DifferentServerName
SELECT @@SERVERNAME AS [ServerName], DB_NAME() AS [DbName]

Notas:

  • sem usar GO para separar os lotes no exemplo acima, o comando :connect fará efeito antes da primeira selecção. Comente o GO e corra novamente para ver o efeito.
  • Ao usar o modo SQLCMD, Intellisense não funcionará.
  • O modo SQLCMD não pode {[25] } ser activado ou desligado programaticamente, mas pode ter o modo SQLCMD activa para todas as janelas de pesquisa novas, indo para Tools / Options / Query Execution e assinalando a opção para "por omissão, abrir novas consultas no modo SQLCMD".
 3
Author: Solomon Rutzky, 2014-04-25 16:48:43
Tanto quanto sei, não há maneira de use ServerName no servidor SQL. Você Pode Criar um servidor ligado e especificar isso como parte do nome da tabela.

Exemplo:

SELECT id, name from MyLinkedServer.MyDBName.dbo.TableName

Se isto é algo que vai funcionar para você dê uma olhada nestes artigos que vão para servidores ligados em mais pormenor:

 0
Author: Abe Miessler, 2014-04-25 16:00:41