Compartilhar via


Criando procedimentos armazenados

Todos os procedimentos armazenados devem ser associados a uma classe CLR (Common Language Runtime) ou COM (Component Object Model) para poderem seu usados. A classe deve ser instalada no servidor , geralmente na forma de uma DLL (biblioteca de vínculo dinâmico) do Microsoft ActiveX® , e registrada como um assembly no servidor ou em um banco de dados do Analysis Services.

Procedimentos armazenados são registrados em um servidor ou em um banco de dados. Procedimentos armazenados do servidor podem ser chamados a partir de qualquer contexto de consulta. Procedimentos armazenados do banco de dados podem ser acessados somente se o contexto do banco de dados for o banco de dados no qual o procedimento armazenado foi definido. Se as funções de um assembly chamarem funções de um assembly diferente, registre ambos no mesmo contexto (servidor ou banco de dados). Para um servidor ou um banco de dados do Microsoft SQL Server Analysis Services implantado em um servidor, você pode usar SQL Server Management Studio para registrar um assembly. Para um projeto do Analysis Services, você pode usar o Analysis Services Designer para registrar um assembly no projeto.

Importante

Os assemblies COM podem representar um risco à segurança. Devido a esse risco e outras considerações, os assemblies COM foram preteridos no SSAS (SQL Server 2008 Analysis Services). Talvez não haja suporte para assemblies COM em versões futuras.

Registrando um assembly de servidor

Em Pesquisador de Objetos no SQL Server Management Studio, os assemblies de servidor são listados na pasta Assemblies em uma instância do Analysis Services. Os assemblies de servidor podem conter assemblies .NET (CLR) e bibliotecas COM.

Para criar um assembly de servidor

  1. Expanda a instância do Analysis Services no Pesquisador de Objetos, clique com o botão direito do mouse na pasta Assemblies e clique em Novo Assembly. Isso exibe a caixa de diálogo Registrar Assembly do Servidor .

  2. Para Tipo , especifique o tipo de assembly:

    • Como DLL de código gerenciado (CLR), especifique .NET Assembly.

    • Para uma DLL com código nativo (COM), especifique DLL COM.

  3. Para Nome do arquivo, especifique a DLL que contém os procedimentos armazenados.

  4. Para Nome do assembly, especifique um nome para o assembly.

  5. Se esse for um build de depuração da biblioteca que você usará para depurar procedimentos armazenados, selecione a caixa Incluir informações de depuração marcar. Para obter mais informações sobre como depurar procedimentos armazenados, consulte Depurando procedimentos armazenados.

  6. Você pode clicar em OK para registrar o assembly imediatamente ou, na barra de ferramentas da caixa de diálogo, você pode clicar em um comando no menu Script para gerar script da ação de registro para uma janela de consulta, um arquivo ou a Área de Transferência.

Depois de registrar um assembly de servidor, você pode configurá-lo clicando com o botão direito do mouse no assembly em Pesquisador de Objetos e clicando em Propriedades.

Registrando um assembly de banco de dados no servidor

Em Pesquisador de Objetos no SQL Server Management Studio, os assemblies de banco de dados são listados na pasta Assemblies em um banco de dados do Analysis Services. Os assemblies de banco de dados podem conter assemblies .NET (CLR) e bibliotecas COM.

Para criar um assembly de banco de dados em um servidor

  1. Expanda a instância do banco de dados do Analysis Services no Pesquisador de Objetos, clique com o botão direito do mouse na pasta Assemblies e clique em Novo Assembly. Isso exibe a caixa de diálogo Registrar Assembly de Banco de Dados .

  2. Para Tipo , especifique o tipo de assembly:

    • Como DLL de código gerenciado (CLR), especifique .NET Assembly.

    • Como DLL de código nativo (COM), especifique COM DLL.

  3. Para Nome do arquivo, especifique a DLL que contém os procedimentos armazenados.

  4. Para Nome do assembly, especifique um nome para o assembly.

  5. Se esse for um build de depuração da biblioteca que você usará para depurar procedimentos armazenados, selecione a caixa Incluir informações de depuração marcar. Para obter mais informações sobre como depurar procedimentos armazenados, consulte Depurando procedimentos armazenados.

  6. Você pode clicar em OK para registrar o assembly imediatamente ou, na barra de ferramentas da caixa de diálogo, você pode clicar em um comando no menu Script para gerar script da ação de registro para uma janela de consulta, um arquivo ou a Área de Transferência.

Depois de registrar um assembly de banco de dados, você pode configurá-lo clicando com o botão direito do mouse no assembly em Pesquisador de Objetos e clicando em Propriedades.

Registrando um assembly de banco de dados em um projeto

Em Gerenciador de Soluções no SSDT (SQL Server Data Tools), os assemblies de banco de dados são listados na pasta Assemblies em um projeto do Analysis Services. Os assemblies de banco de dados podem conter assemblies .NET (CLR) e bibliotecas COM.

Para criar um assembly de banco de dados em um projeto do Analysis Service

  1. Expanda a instância do banco de dados do Analysis Services no Pesquisador de Objetos, clique com o botão direito do mouse na pasta Assemblies e clique em Nova Referência de Assembly. Isso exibe a caixa de diálogo Adicionar Referência . A guia .NET da caixa de diálogo Adicionar Referência lista assemblies .NET (CLR) existentes, enquanto a guia Projetos lista projetos.

  2. Você pode clicar em um componente ou projeto existente e clicar em Adicionar para adicioná-lo ao projeto do Analysis Services. Para adicionar uma referência a uma DLL COM, clique na guia Procurar para localizar o arquivo. A lista Projetos e componentes selecionados mostra o nome, o tipo, a versão e o local de cada componente que você está adicionando ao projeto.

  3. Quando terminar de selecionar os componentes a serem adicionados, clique em OK para adicioná-los ao projeto do Analysis Services.

Formato de script para um assembly

Registrar um assembly .NET é bastante simples. Um assembly .NET é adicionado a um banco de dados em formato binário que usa o seguinte formato:

<Create>  
   <ObjectDefinition>  
      <Assembly>  
         <Files>  
            <File>  
               <Name>filename</Name>  
               <Type>filetype</Type>  
               <Data>  
                  <Block>binarydatablock</Block>  
                  <Block>binarydatablock</Block>  
                  ...  
               </Data>  
            </File>  
         </Files>  
         <PermissionSet>PermissionSet</PermissionSet>  
      </Assembly>  
   <ObjectDefinition>  
</Create>  

Consulte Também

Gerenciamento de assemblies de modelo multidimensional
Definindo procedimentos armazenados