A função OPENROWSET do T-SQL pode ser muito útil quando precisamos acessar uma informação de uma outra base de dados. Apesar do usuário DBO não ter permissão de executar a stored procedure sp_addlinkedserver, é possível informar as configurações de acesso na própria função OPENROWSET.
A sintaxe da função é assim: OPENROWSET ( 'provider_name' , { 'datasource' ; 'user_id' ; 'password' | 'provider_string' } , { [ catalog. ] [ schema. ] object | 'query' } )
No exemplo abaixo, retornamos o resultado de uma consulta feita em outra base de dados MS SQL:
SELECT a.coluna1, a.coluna2 FROM OPENROWSET('SQLOLEDB','SERVIDOR';'LOGIN';'SENHA', 'SELECT coluna1, coluna2 FROM tabela') AS a
Veja mais informações sobre este recurso, no Books On Line do MS SQL:
http://msdn.microsoft.com/en-us/library/ms190312%28SQL.90%29.aspx
Obs 1: Não é possível acessar um banco de dados MS Access com esta função em um servidor compartilhado, pois os clientes não tem acesso para hospedar o arquivo MDB neste mesmo servidor. Isso poderá ser feito apenas em um servidor MS SQL dedicado.
Obs 2: Acesso a servidores externos à rede da Locaweb pode gerar sobrecarga nos servidores. Caso alguma sobrecarga proveniente deste acesso venha a prejudicar o desempenho do servidor e conseqüentemente o desempenho do site de outros clientes no mesmo servidor compartilhado, desativaremos temporariamente a base de dados e entraremos em contato.
Veja também
- Senha da base MS SQL Server
- Usuário Adicional no MS SQL Server
- Conectando-se no MS SQL Server através Asp.Net
- Função para Conexão ao MS-SQL via Php
- Conectando-se ao MS SQL Server através do Asp