我在 SQL 项目中有一个 PostDeployment 脚本,该脚本在发布时会在项目中运行许多其他脚本:
:r .\Scripts\Script1.sql
:r .\Scripts\Script2.sql
:r .\Scripts\Script3.sql
:r .\Scripts\Script4.sql
Run Code Online (Sandbox Code Playgroud)
每次将新脚本添加到源代码管理 (TFS) 中的 Scripts 文件夹时都不必手动更新,是否可以只迭代并执行 Scripts 文件夹中的所有 SQL 脚本?
我有一个非常庞大的 .sql 脚本。我将此脚本添加到 Visual Studio 2013 下的 sql server 项目中。当我尝试构建它时,我收到此错误消息
此 T-SQL 脚本超出了允许的最大大小。通过从“工具”菜单中选择“选项”,在“SQL Server 工具”页面中调整此设置
根据这篇 msdn文章,有一个名为Maximum script sizeit的属性可以在 Visual Studio 工具中访问:
工具->选项->文本编辑器->SQL Server 工具->智能感知->最大脚本大小
我将其从 1MB 更改为无限制,但没有任何改变
Visual Studio 2013 具有允许在 SSDT 项目和目标数据库之间执行数据比较的功能。
考虑到这些要求,我想做这样的事情作为我们构建和部署过程的一部分:
目前,我有一个脚本来处理子弹号。1 通过使用 DACPAC 通过sqlpackage.exe进行模式比较。不过,似乎无法使用 sqlpackage 执行数据比较,而且我还没有找到任何其他替代方案。在 VS 2010 中,可以通过命令窗口运行数据比较,但我在 VS 2013 中没有看到任何关于此的文档......
因此,我的问题是是否存在允许通过例如 Powershell 脚本以编程方式运行数据比较的 API 和/或其他工具。
因此,我们正在努力添加 SQL DACPAC 作为我们持续集成的一部分。我们使用运行“sqlpackage.exe”和每个 DacPac 文件的 powershell 脚本来做到这一点。我们有大约 12 个 DB,因此大约有 12 个 DacPac。
每次我们运行“sqlpackage.exe”来发布或编写 DacPac 脚本时,我们都会注意到完成初始化需要 0.5-1 分钟以上的时间。当“sqlpackage.exe”开始时,大部分时间是在初始化流程中花费的。
如果可能的话,我试图找到一种方法来减少这种情况,因为我们有 12 个数据库,我们正在谈论数据库部署至少需要 12 分钟,这对我们来说太多了。
你知道有什么方法可以减少这种情况吗?
我找不到有关如何在 dacpac 中打包部署贡献者的任何参考资料。
所以我的问题是如何在 dacpac 中指定这些部署贡献者?
我尝试将部署贡献者类放在 Visual Studio 的 SSDT 项目中,但这会干扰加载到 SQL Server 中的 CLR 程序集(即,它被加载到 SQL Server 中,如果它的依赖项也未设置为加载,则错误是抛出)。
请指教。谢谢。
我使用包部署模型在 Visual Studio SSDT 2012 中创建了一个 SSIS 包。有什么方法可以从包内以只读变量或属性的形式访问包的文件名?
我没有看到它被列为系统变量,有没有办法通过脚本任务?
c# sql-server-2012 visual-studio-2012 ssis-2012 sql-server-data-tools
在我们的 SSDT 项目中,我们有一个巨大的脚本,其中包含许多用于从旧系统导入数据的 INSERT 语句。使用 sqlcmd 变量,我希望能够有条件地将文件包含到部署后脚本中。
我们目前使用的:r语法包括内联脚本:
IF '$(ImportData)' = 'true'
BEGIN
:r .\Import\OldSystem.sql
END
Run Code Online (Sandbox Code Playgroud)
这是一个问题,因为 无论是真还是假,脚本都被内联包含$(ImportData),而且文件太大,导致构建速度减慢了大约 15 分钟。
是否有另一种方法有条件地包含此脚本文件,以免减慢构建速度?
我为 Visual Studio 2015 安装了最新的 SSDT 来创建/修改连接到 Oracle 11 数据库的 SSRS 报告。先前版本的 SSDT(适用于 Visual Studio 2012)将“Oracle”作为数据源属性中“类型”下拉列表中的值之一,如果机器上安装了 Oracle 客户端软件,则它可以正常工作。但是,Visual Studio 2015 的 SSDT 中的列表值已更改。不再有“Oracle”选项,而是“Oracle 数据库”。但是,如果选择了“Oracle 数据库”,我会收到错误消息“无法连接到数据源‘DataSource1’。所选的数据扩展 ORACLE 未安装或无法加载...”。知道如何解决这个问题吗?
PS:我通过指定“Oracle Provider for OLEDB”来尝试 OLEDB 选项,该选项将连接字符串稍微更改为“Provider=OraOLEDB.Oracle.1;Data Source=DBName”。连接有效,但许多查询停止工作,并显示消息“ORA-00900:无效的 SQL 语句”。
oracle reporting-services sql-server-data-tools visual-studio-2015
之前在这里问过这个问题,但提出的解决方案似乎对我不起作用。
我正在尝试导入一个文本文件管道分隔的文本限定符"。SSIS 包正在返回错误消息
未找到列“columnX”的分隔符
其中 X 列是文件中的最后一个字段。
在连接管理器的高级选项卡中,我为columnXto设置了列分隔符,{LF}而所有其他字段都设置为 vertical |。
我已经验证了文件,没有遗漏字段。有一些空值,但所有字段都在那里。
我无法指出是什么导致了这种情况。您的帮助将不胜感激。
我的团队/公司在一些小项目中尝试了 SSDT,我们印象非常深刻。
最近,我们调查了 SSDT 在我们现有的一个较大的应用程序中的使用情况,并因外部数据库引用的 SQL71501 错误而泛滥成灾。
应用程序有相当多的数据库耦合网络,所以这是可以理解的。
有没有办法抑制/禁用/关闭此检查,以便 SSDT 项目可以构建而不管这些未解析的引用如何?
大多数关于此错误代码的讨论都错误地将其描述为警告,而不是错误。
Visual Studio 2015 Enterprise - 最新的 SSDT 包 SQL 2008
sql-server ×5
c# ×2
dacpac ×2
sql ×2
ssis-2012 ×2
deployment ×1
etl ×1
oracle ×1
powershell ×1
sqlpackage ×1
ssis ×1
t-sql ×1
tfs ×1