4

使用 Visual Studio 2008 部署 SQL 项目时,我们会创建一个 .sql 文件。

在项目属性中,我们设置了部署操作:创建部署脚本。在构建和部署项目时,会按预期生成 .sql。检查生成的代码时,我看到以下 SQL 代码:

从 0x4D5A9 创建程序集 [System.Core] 授权 [dbo] .... WITH PERMISSION_SET = SAFE;

执行这段代码会抛出以下错误。

CREATE ASSEMBLY 失败,因为程序集“System.Core”是系统程序集。考虑创建一个用户程序集来包装所需的功能。

为什么首先生成此代码,如何防止生成此代码?(据我所知,我们在项目中没有任何 SQLCLR 存储过程或 LINQ)

4

1 回答 1

2

我不确定 VS2008,但是在 VS2012 中有一个 SQLCLR 选项卡在 Database Project Properties 窗口中。页面底部的选项之一是标记为 的复选框Generate DDL。如果选中此项,请取消选中它,然后再次构建并生成脚本。

How to: Work with CLR Database Objects 中的第三段指出:

CLR 和 CLR Build 属性页包含许多用于在项目中使用 CLR 数据库对象的设置。具体来说,CLR 属性页有一个权限级别设置,用于设置对 CLR 程序集的权限。它还具有“生成 DDL”设置来控制是否为添加到项目的 CLR 数据库对象生成 DDL。CLR Build 属性页包含所有编译器选项,您可以设置这些选项来配置项目中 CLR 代码的编译。可以通过在解决方案资源管理器中右键单击您的项目并选择属性来访问这些属性页

有关数据库项目属性中 SQLCLR 选项的更多信息,请参阅 MSDN 文章: http: //msdn.microsoft.com/en-us/library/hh272681 (v=vs.103).aspx#bkmk_sqlclr_sqlclrbuild

于 2013-05-16T16:51:24.627 回答