Entrar com a conta da Microsoft
Entrar ou criar uma conta.
Olá,
Selecionar uma conta diferente.
Você tem várias contas
Escolha a conta com a qual você deseja entrar.

Resumo

O Microsoft SQL Server suporta conexões com outras fontes de dados OLE DB em uma base persistente ou ad hoc. A conexão persistente é conhecida como um servidor vinculado; uma conexão ad hoc que é feita por causa de uma única consulta é conhecida como uma consulta distribuída. Os livros de trabalho do Microsoft Excel são um tipo de fonte de dados OLE DB que você pode consultar através do SQL Server dessa maneira. Este artigo descreve a sintaxe necessária para configurar uma fonte de dados do Excel como um servidor vinculado, bem como a sintaxe necessária para usar uma consulta distribuída que consulta uma fonte de dados do Excel.

Informações adicionais

Consultando uma fonte de dados do Excel em um servidor vinculado

Você pode usar o SQL Server Management Studio ou Enterprise Manager, um procedimento armazenado pelo sistema, SQL-DMO (Objetos distribuídos de gerenciamento) ou SMO (Objetos de Gerenciamento de Servidores SQL) para configurar uma fonte de dados do Excel como um servidor vinculado ao SQL. (SMO só estão disponíveis para Microsoft SQL Server 2005.) Em todos estes casos, você deve sempre ajustar as seguintes quatro propriedades:

  • O nome que você deseja usar para o servidor vinculado.

  • O Provedor OLE DB que deve ser usado para a conexão.

  • A fonte de dados ou o nome completo do trajeto e do arquivo para o livro de trabalho do Excel.

  • A corda do fornecedor,que identifica o alvo como um livro de trabalho do Excel. Por padrão, o provedor de jato espera um banco de dados de acesso.

O procedimento armazenado sistema sp_addlinkedserver igualmente espera a propriedade @srvproduct, que pode ser todo o valor da corda. Nota Se você estiver usando o SQL Server 2005, você deve especificar um valor que não está vazio para a propriedade do nome do produto no SQL Server Management Studio ou para a propriedade @srvproduct no procedimento armazenado para uma fonte de dados excel.

Usando o SQL Server Management Studio ou o Enterprise Manager para configurar uma fonte de dados do Excel como um servidor vinculado

Estúdio de gerenciamento de servidor sql (servidor SQL 2005)
  1. No SQL Server Management Studio, expanda objetos de servidor no Object Explorer.

  2. Clique direito servidores vinculados,e, em seguida, clique novo servidor vinculado.

  3. No painel esquerdo, selecione a página geral e, em seguida, siga estas etapas:

    1. Na primeira caixa de texto, digite qualquer nome para o servidor vinculado.

    2. Selecione a opção de outra fonte de dados.

    3. Na lista de provedores, clique no provedor Microsoft Jet 4.0 OLE DB.

    4. Na caixa de nome do produto,digite Excel para o nome da fonte de dados OLE DB.

    5. Na caixa de fonte de dados, digite o caminho completo e o nome do arquivo do arquivo Excel.

    6. Na caixa de cordas do Provedor,digite excel 8.0 para um excel 2002, excel 2000 ou excel 97 livro de trabalho.

    7. Clique ok para criar o novo servidor vinculado.

Nota No SQL Server Management Studio, você não pode expandir o novo nome do servidor vinculado para visualizar a lista de objetos que o servidor contém.

Gerente empresarial (SQL Server 2000)
  1. No Enterprise Manager, clique para expandir a pasta de segurança.

  2. Clique direito servidores vinculados,e, em seguida, clique novo servidor vinculado.

  3. Na guia Geral, siga estas etapas:

    1. Na primeira caixa de texto, digite qualquer nome para o servidor vinculado.

    2. Na caixa do tipo servidor, clique em outra fonte de dados.

    3. Na lista de nomes do Provedor, clique no Provedor Microsoft Jet 4.0 OLE DB.

    4. Na caixa de fonte de dados, digite o caminho completo e o nome do arquivo do arquivo Excel.

    5. Na caixa de cordas do Provedor,digite excel 8.0 para um excel 2002, excel 2000 ou excel 97 livro de trabalho.

    6. Clique ok para criar o novo servidor vinculado.

  4. Clique para expandir o novo nome do servidor vinculado para expandir a lista de objetos que ele contém.

  5. o novo nome do servidor vinculado, clique em Tabelas. Observe que suas planilhas e intervalos nomeados aparecem no painel certo.

Usando um procedimento armazenado para configurar uma fonte de dados do Excel como um servidor vinculado

Você também pode usar o procedimento armazenado pelo sistema sp_addlinkedserver para configurar uma fonte de dados do Excel como um servidor vinculado:

DECLARE @RC intDECLARE @server nvarchar(128)DECLARE @srvproduct nvarchar(128)DECLARE @provider nvarchar(128)DECLARE @datasrc nvarchar(4000)DECLARE @location nvarchar(4000)DECLARE @provstr nvarchar(4000)DECLARE @catalog nvarchar(128)-- Set parameter valuesSET @server = 'XLTEST_SP'SET @srvproduct = 'Excel'SET @provider = 'Microsoft.Jet.OLEDB.4.0'SET @datasrc = 'c:\book1.xls'SET @provstr = 'Excel 8.0'EXEC @RC = [master].[dbo].[sp_addlinkedserver] @server, @srvproduct, @provider, @datasrc, @location, @provstr, @catalog

Como observado acima, este procedimento armazenado requer um valor de corda adicional e arbitrário para o argumento @srvproduct, que aparece como "nome do produto" na configuração do Enterprise Manager e do SQL Server Management Studio. Os argumentos @location e @catalog não são usados.

Usando o SQL-DMO para configurar uma fonte de dados do Excel como um servidor vinculado

Você pode usar objetos de gerenciamento distribuídos SQL para configurar uma fonte de dados do Excel como um servidor vinculado programaticamente do Microsoft Visual Basic ou outro idioma de programação. Você deve fornecer os mesmos quatro argumentos que são necessários na configuração do Enterprise Manager e do SQL Server Management Studio.

Private Sub Command1_Click()    Dim s As SQLDMO.SQLServer    Dim ls As SQLDMO.LinkedServer    Set s = New SQLDMO.SQLServer    s.Connect "(local)", "sa", "password"    Set ls = New SQLDMO.LinkedServer    With ls        .Name = "XLTEST_DMO"        .ProviderName = "Microsoft.Jet.OLEDB.4.0"        .DataSource = "c:\book1.xls"        .ProviderString = "Excel 8.0"    End With    s.LinkedServers.Add ls    s.CloseEnd Sub

Usando smo para configurar uma fonte de dados excel como um servidor vinculado

No SQL Server 2005, você pode usar objetos de gerenciamento de servidor esql (SMO) para configurar uma fonte de dados do Excel como um servidor vinculado programaticamente. Para fazer isso, você pode usar o Microsoft Visual Basic .NET ou outra linguagem de programação. Você deve fornecer os argumentos que são necessários na configuração do SQL Server Management Studio. O modelo de objeto SMO se estende e substitui o modelo de objetos de gerenciamento distribuído (SQL-DMO). Como o SMO é compatível com a versão SQL Server 7.0, o SQL Server 2000 e o SQL Server 2005, você também pode usar o SMO para configuração do SQL Server 2000.

Imports Microsoft.SqlServer.Management.SmoImports Microsoft.SqlServer.Management.CommonPublic Class Form1    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click        Dim s As Server        Dim conn As ServerConnection        Dim ls As LinkedServer        conn = New ServerConnection("ServerName\InstanceName", "YourUesrName", "YourPassword")        s = New Server(conn)        Try            ls = New LinkedServer(s, "XLTEST_DMO")            With ls                .ProviderName = "Microsoft.Jet.OLEDB.4.0"                .ProductName = "Excel"                .DataSource = "c:\book1.xls"                .ProviderString = "Excel 8.0"            End With            ls.Create()            MessageBox.Show("New linked Server has been created.")        Catch ex As SmoException            MessageBox.Show(ex.Message)        Finally            ls = Nothing            If s.ConnectionContext.IsOpen = True Then                s.ConnectionContext.Disconnect()            End If        End Try    End SubEnd Class

Consultando uma fonte de dados do Excel em um servidor vinculado

Depois de configurar uma fonte de dados do Excel como um servidor vinculado, você pode facilmente consultar seus dados do Consultador de Consultas ou de outro aplicativo de cliente. Por exemplo, para recuperar as linhas de dados armazenadas na Folha1 do seu arquivo Excel, o código a seguir usa o servidor vinculado que você configurou usando O SQL-DMO:

SELECT * FROM XLTEST_DMO...Sheet1$

Você também pode usar o OPENQUERY para consultar o servidor vinculado ao Excel de forma "passthrough", da seguinte forma:

SELECT * FROM OPENQUERY(XLTEST_DMO, 'SELECT * FROM [Sheet1$]')

O primeiro argumento que a OPENQUERY espera é o nome do servidor vinculado. Os delimitadores são necessários para nomes de planilha, como mostrado acima. Você também pode obter uma lista de todas as tabelas que estão disponíveis no servidor vinculado ao Excel usando a seguinte consulta:

EXECUTE SP_TABLES_EX 'XLTEST_DMO'

Consultando uma fonte de dados do Excel usando consultas distribuídas

Você pode usar consultas distribuídas pelo SQL Server e a função OPENDATASOURCE ou OPENROWSET para consultar fontes de dados excel raramente acessadas em uma base ad hoc. Nota Se você estiver usando o SQL Server 2005, certifique-se de ter habilitado a opção De consultas distribuídas ad Hoc usando a configuração de área de superfície do servidor SQL, como no seguinte exemplo:

SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',   'Data Source=c:\book1.xls;Extended Properties=Excel 8.0')...Sheet1$

Note-se que o OPENROWSET usa uma sintaxe incomum para o segundo argumento ("Provider String") :

SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',    'Excel 8.0;Database=c:\book1.xls', Sheet1$)

A sintaxe que um desenvolvedor de objetos de dados ActiveX (ADO) pode esperar usar para o segundo argumento ("String do Provedor") com o OPENROWSET:

SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',    'Data Source=c:\book1.xls;Extended Properties=Excel 8.0', Sheet1$)

Esta sintaxe levanta o seguinte erro do provedor de jato:

Não foi possível encontrar ISAM instalaível.

Nota Esse erro também ocorre se você digitar datasource em vez de fonte de dados. Por exemplo, o seguinte argumento está incorreto:

SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'DataSource=c:\book1.xls;Extended Properties=Excel 8.0', Sheet1$) 

Referências

Como os servidores vinculados ao Servidor SQL e as consultas distribuídas usam o provedor OLE DB, as diretrizes gerais e os avisos sobre o uso do ADO com o Excel se aplicam aqui. Para mais informações, clique no seguinte número do artigo para visualizar o artigo na Base de Conhecimento da Microsoft:

257819 Como usar a ADO com dados do Excel do Visual Basic ou VBAPara obter mais informações sobre objetos de gerenciamento de servidores SQL, visite o seguinte site da Microsoft Developer Network (MSDN):

http://msdn2.microsoft.com/en-us/library/ms162169(ide).aspxPara obter mais informações sobre como habilitar a opção Ad Hoc Distributed Consultries, visite o seguinte site da MSDN:

http://msdn2.microsoft.com/en-us/library/ms189978(ide).aspx

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?
Ao pressionar enviar, seus comentários serão usados para aprimorar os produtos e serviços da Microsoft. Seu administrador de TI poderá coletar esses dados. Política de Privacidade.

Agradecemos seus comentários!

×