我已经使用过几次部署后脚本,并且总是直观地使用构建操作“PostDeploy”,因为它就是这样。现在我第一次尝试按照脚本模板中的内置指令使用":r somescript.sql"
语法。
此行立即被标记为错误:
“':' 旁边的 SQL80001 语法错误”
我找到了将 PDS 设置为“无”的建议。这没有帮助,错误仍然存在。我在这里缺少什么?
我有一个Visual Studio 2013数据库项目这需要一个修改版本的FASTJSON作为参考。我在参考属性中选择了 Generate DDL,如下图所示:
在 .sqlproj msbuild 文件中:
<Reference Include="fastJSON">
<HintPath>..\..\fastjson\output\net40\fastJSON.dll</HintPath>
<GenerateSqlClrDdl>True</GenerateSqlClrDdl>
</Reference>
Run Code Online (Sandbox Code Playgroud)
但是 bin/debug/Project.sql 不包含CREATE ASSEMBLY fastJSON . . .
. 手动添加程序集工作,然后我的项目将部署和运行。我该怎么做才能让 Visual Studio 部署我的程序集?
我正在 Visual Studio 2013 中处理 SSIS 包。对于整个包中的任何脚本组件,如果我双击它然后单击“编辑脚本...”按钮,Visual Studio 2012 将打开但没有加载编辑器窗口. 它只是一个空窗口,就像您关闭了所有文档一样。解决方案资源管理器显示项目,但值得注意的是“ScriptComponent”是一个空文件夹:
如果我尝试在解决方案资源管理器中打开任何文件(BufferWrapper.cs、ComponentWrapper.cs、main.cs),我会收到一个弹出错误框,内容为:
任何人都知道这里发生了什么?FWIW,我尝试关闭 Visual Studio 的所有实例并使用 SSIS 包重新打开我的解决方案。同样的行为仍然存在。
我在 Visual Studio 2013 中有一个带有以下签名的 SQLCLR 存储过程:
[SqlFunction(DataAccess = DataAccessKind.Read, SystemDataAccess = SystemDataAccessKind.Read)]
public static SqlString ExecSql2Json(SqlString sql)
Run Code Online (Sandbox Code Playgroud)
或者我已经尝试过:
[SqlFunction(DataAccess = DataAccessKind.Read, SystemDataAccess = SystemDataAccessKind.Read)]
public static SqlChar ExecSql2Json(SqlChar sql)
Run Code Online (Sandbox Code Playgroud)
无论哪种方式,参数和返回类型都被定义为NVARCHAR(4000)
. 我希望他们成为NVARCHAR(MAX)
。
我知道我可以手动编写自己的CREATE PROCEDURE
语句来进行细粒度控制。是否有任何选项可以更改 SQL Server 生成的部署 DDL,或者我是否只需要手动添加脚本来删除和读取具有正确签名的 UDF?