创建存储过程

所有存储过程必须与公共语言运行时 (CLR) 或组件对象模型 (COM) 类相关联才能使用。 该类必须安装在服务器上(通常以 Microsoft ActiveX® 动态链接库 (DLL) 的形式),并且在服务器或在 Analysis Services 数据库中注册为程序集。

存储过程将在服务器或数据库中注册。 服务器存储过程可以从任何查询上下文进行调用。 而只有当数据库上下文是定义存储过程时所针对的数据库时,才能访问数据库存储过程。 如果一个程序集内的函数调用了另一个程序集内的函数,则必须在相同的上下文(服务器或数据库)中注册这两个程序集。 对于服务器或服务器上的已部署 Microsoft SQL Server Analysis Services 数据库,可以使用 SQL Server Management Studio 注册程序集。 对于 Analysis Services 项目,可以使用 Analysis Services 设计器在项目中注册程序集。

安全说明安全说明

COM 程序集可能会造成安全风险。 由于此风险和其他注意事项,SQL Server 2008 Analysis Services (SSAS) 中不推荐使用 COM 程序集。 未来版本可能不支持 COM 程序集。

注册服务器程序集

在 SQL Server Management Studio 的对象资源管理器中,服务器程序集列在 Analysis Services 实例下面的“程序集”文件夹中。 服务器程序集可以同时包含 .NET (CLR) 程序集和 COM 库。

创建服务器程序集

  1. 在对象资源管理器中展开 Analysis Services 实例,右键单击**“程序集”文件夹,再单击“新建程序集”。 这将显示“注册服务器程序集”**对话框。

  2. 对于**“类型”**,请指定程序集的类型:

    • 对于托管代码 (CLR) DLL,请指定 .NET 程序集。

    • 对于本机代码 (COM) DLL,请指定 COM DLL。

  3. 对于**“文件名”**,请指定包含存储过程的 DLL。

  4. 对于**“程序集名称”**,请指定程序集的名称。

  5. 如果这是将要用来调试存储过程的库的调试版本,请选中**“包含调试信息”**复选框。 有关调试存储过程的详细信息,请参阅调试存储过程

  6. 单击**“确定”可以立即注册程序集,或在对话框工具栏上单击“脚本”**菜单中的命令,以便使注册操作脚本化到查询窗口、文件或剪贴板中。

注册服务器程序集之后,可以在对象资源管理器中右键单击程序集,再单击**“属性”**来配置该程序集。

在服务器上注册数据库程序集

在 SQL Server Management Studio 的对象资源管理器中,数据库程序集将列在 Analysis Services 数据库下面的“程序集”文件夹中。 数据库程序集可以同时包含 .NET (CLR) 程序集和 COM 库。

在服务器上创建数据库程序集

  1. 在对象资源管理器中,展开 Analysis Services 数据库实例,右键单击**“程序集”文件夹,再单击“新建程序集”。 这将显示“注册数据库程序集”**对话框。

  2. 对于**“类型”**,请指定程序集的类型:

    • 对于托管代码 (CLR) DLL,请指定 .NET 程序集。

    • 对于本机代码 (COM) DLL,请指定 COM DLL。

  3. 对于**“文件名”**,请指定包含存储过程的 DLL。

  4. 对于**“程序集名称”**,请指定程序集的名称。

  5. 如果这是将要用来调试存储过程的库的调试版本,请选中**“包含调试信息”**复选框。 有关调试存储过程的详细信息,请参阅调试存储过程

  6. 单击**“确定”可以立即注册程序集,或在对话框工具栏上单击“脚本”**菜单中的命令,以便使注册操作脚本化到查询窗口、文件或剪贴板中。

注册数据库程序集之后,可以在对象资源管理器中右键单击程序集,再单击**“属性”**来配置该程序集。

在项目中注册数据库程序集

在 SQL Server Data Tools (SSDT) 的解决方案资源管理器中,数据库程序集列在 Analysis Services 项目下面的“程序集”文件夹中。 数据库程序集可以同时包含 .NET (CLR) 程序集和 COM 库。

在 Analysis Service 项目中创建数据库程序集

  1. 在对象资源管理器中展开 Analysis Services 数据库实例,右键单击**“程序集”文件夹,再单击“新建程序集引用”。 这将显示“添加引用”**对话框。 **“添加引用”对话框的 .NET 选项卡将列出现有的 .NET (CLR) 程序集,而“项目”**选项卡会列出项目。

  2. 可以单击现有组件或项目,再单击**“添加”,以便将其添加到 Analysis Services 项目。 若要添加对 COM DLL 的引用,请单击“浏览”**选项卡以查找文件。 **“选定的项目和组件”**列表将显示要添加到项目中的每个组件的名称、类型、版本和位置。

  3. 选择完要添加的组件后,单击**“确定”**将它们添加到 Analysis Services 项目中。

程序集的脚本格式

注册 .NET 程序集的操作相当简单。 .NET 程序集将使用以下格式以二进制格式添加到数据库:

<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>

请参阅

概念

多维模型程序集管理

定义存储过程