我有一个包含两个数据库项目的 VS 2013 解决方案。
其中之一,我们称之为“worker”,应该部署到大约 10 个不同的生产服务器上。
另一个应该作为“控制器”实例工作,基本上应该在 10 台生产服务器上的“工作人员”数据库上运行不同的存储过程。
因此,为了实现这一点,我在“控制器”内编写了 10 个链接服务器对象的脚本,并调用“工作器”数据库中的不同 SP。
以下是链接服务器脚本的示例:
EXEC sp_addlinkedserver @server = N'PROD1', @srvproduct=N'SQLSERVER', @provider=N'SQLNCLI', @datasrc=N'1.2.3.4\prod1'
GO
EXEC sp_addlinkedsrvlogin @rmtsrvname=N'PROD1',@useself=N'False',@locallogin=NULL,@rmtuser=N'aaaaa',@rmtpassword='aaaaa'
GO
EXEC sp_serveroption @server=N'PROD1', @optname=N'rpc', @optvalue=N'true'
GO
EXEC sp_serveroption @server=N'PROD1', @optname=N'rpc out', @optvalue=N'true'
GO
Run Code Online (Sandbox Code Playgroud)
到目前为止,效果很好,并且链接服务器是在控制器 SQL Server 上创建的,我可以使用它们。
但是:
在 SSDT 项目/解决方案中,每当我使用链接服务器对象时,我都会收到损坏的引用。当然,模式不知道链接服务器名称,因为它们仅位于上述脚本中的字符串常量中。
示例:(我自己翻译的信息,不保证完全正确)
警告 14 SQL71562:“过程:[dbo].[SP1]”包含对对象 [PROD1].[db1].[dbo].[SP1] 的未解析引用”。
所以我的问题是,我有从控制器数据库模式到“worker”数据库模式的引用,但我无法使用/插入数据库引用,因为我使用多个不同的引用(10 个生产服务器)来“访问”工作人员的架构...我不想使用“OtherServer”选项向我的项目添加 10 个数据库引用(即使可以,我猜它也不允许向同一数据库项目添加 10 个引用。 ..)
我有一种感觉,应该可以在解决方案中以正确的方式处理链接服务器对象,但我不知道如何解决。
我尝试了亚伦的同义词建议,但是一旦我使用链接服务器的名称,就会遇到同样的问题,导致名称“后面”出现未知对象。
我编辑了问题以使问题更加清晰,并希望任何人都有想法,因为我想要一个干净的解决方案,没有数百条警告消息。
visual-studio sql-server-2008-r2 linked-server ssdt database-projects
根据此链接,https: //www.mssqltips.com/sqlservertip/4253/backwards-compatibility-in-sql-server-data-tools-for-integration-services/ 最新版本的 SQL Server Data Tools - “SSDT对于 Visual Studio 15" (16.5) 也与 SQL 2016 和旧版本兼容。在以前的软件化身中,无论它被称为“SQL Server Data Tools”、“SQL Server Data Tools - Business Intelligence”还是“Business Intelligence Development Studio”,我们在部署时似乎总是遇到版本不兼容的问题。
如果我没看错,我们可以卸载所有旧版本的工具,只需安装 SSDT 16.5 即可为 SQL 2012 及更高版本开发 SSIS 包。由于我在过去版本的工具中看到的许多问题,我对在此开发新项目犹豫不决。
是否有人使用 SSDT 16.5 成功将 SSIS 包部署到 SQL 2016 和旧版本?显然,仅在较新版本中支持的任务在旧版本中不起作用。
有没有人愿意分享任何技巧来帮助更好地识别 SSIS 包中的禁用元素?理想情况下,有一些方法可以将文本颜色调整为红色或类似的颜色,但我认为默认行为似乎非常缺乏。我已经挖掘了许多选项,但似乎没有什么会影响仅禁用元素的显示。
这是一个示例图像,其中 6 个元素中有 4 个被禁用:
尽管我很想回到一致的 SSIS 开发实践,但这些包主要是继承的,所以我坚持使用各种方法。
此屏幕截图来自 Visual Studio 2012,但我相信该问题也存在于许多其他版本中。
问题始于 5 月 3 日。我们无法再将已由 Visual Studio 2017.X 修改的 SSIS 包导入到我们的 SQL 集成服务(SQL 版本 2017 14.0.3023)中。SSMS 集成服务导入组件(GUI)不断崩溃!对于任何新包或我们在 Visual Studio 2017 x 中修改的任何包。我们能够导入历史包和 Visual Studio 2012 包。
这是来自 SSMS 17.5 的错误消息
这是我们使用 SSMS 17.6 时得到的结果
在 Windows 应用程序事件错误日志中产生这些事件:
故障桶2169157664500142207,类型5
活动名称:BEX
回应:不可用
驾驶室 ID:0
问题签名:
P1:Ssms.exe
P2:2017.140.17230.0
P3:5aa77b02
P4:ucrtbase.dll
P5:10.0.14393.2097
P6:5a820b25
P7:000891eb
P8:c0000409
P9:00000007
P10:
附加的文件:
\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERF5E0.tmp.WERInternalMetadata.xml
这些文件可能在此处可用:
C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_Ssms.exe_5c8965b8776ba510b9bbdc96d6fefcc0aaa_ff38c945_2e8d1138
分析符号:
重新检查解决方案:0
报告 ID:f99af3b2-3cda-40da-86ac-94c26a865ea5
报告状态:0
哈希桶:17946c34f35f49a32e1a65673658d07f
7:59:25 出错
错误的应用程序名称:Ssms.exe,版本:2017.140.17230.0,时间戳:0x5aa77b02
错误模块名称:ucrtbase.dll,版本:10.0.14393.2097,时间戳:0x5a820b25
异常代码:0xc0000409
故障偏移:0x000891eb
错误进程 ID:0x2ee4
错误的应用程序开始时间:0x01d3e6e172bf41ca
错误的应用程序路径:C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\Ssms.exe
错误模块路径:C:\Windows\System32\ucrtbase.dll
报告 ID:68608e7c-dbd8-48d8-bd5c-fc50eaadc804 …
我正在创建 SQL Server 单元测试。我们正在测试各种存储过程。
在单元测试原则中,设置一个小的数据库表,填充值,拆除(截断/删除)数据库表,并为每个测试重新设置是一个很好的做法。这样每个单元测试都会有一个干净的环境来验证插入、选择、更新、删除等的 sproc,
有没有人在哪里或如何在 Sql 单元测试中重新初始化表值?SQL SSDT VS 2017 中的单元测试资源非常新,所以我认为很多人都在试图弄清楚和理解。
随意在下面显示或添加图片。
http://www.sqlservercentral.com/articles/Unit+Testing/155651/ http://www.erikhudzik.com/2017/08/23/writing-sql-server-unit-tests-using-visual-studio- nunit-and-sqltest/
Visual Studio SSDT 中的图片:
此外,尝试在 SQLDatabaseSetup.cs 中查看此类:
[TestClass()]
public class SqlDatabaseSetup
{
[AssemblyInitialize()]
public static void InitializeAssembly(TestContext ctx)
{
// Setup the test database based on setting in the
// configuration file
SqlDatabaseTestClass.TestService.DeployDatabaseProject();
SqlDatabaseTestClass.TestService.GenerateData();
}
}
}
using Microsoft.Data.Tools.Schema.Sql.UnitTesting;
Run Code Online (Sandbox Code Playgroud) 我将 SQLPackage.exe 与数据库发布配置文件结合使用,将数据库更改部署到 DEV 和 QC 实例。我的数据库处于简单恢复模式。但是当我使用 SQLPackage 部署更改时,它将它们恢复为完全恢复模式。
这就是我正在使用的,
"C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe" /Action:Publish /SourceFile:"FILE PATH TO .DACPAC" /Profile:"PUBLISH PROFILE.XML"
如果我使用 Visual Studio 使用相同的发布项目来部署项目更改,则会发生同样的情况。
我在这里缺少什么?据我所知,Profile 中没有这样的标志。这是 SQLPackage 的预期行为吗?
我正在 Visual Studio 2012 中创建一个 SQLCLR 存储过程。我有这些目标平台的选项:

没有 SQL Server 2008 R2 特定选项吗?这是因为 SQL 2008 R2与 SQL Server 2008共享相同的兼容性级别100?
我的公司从外部承包商那里收到了一个 Analysis Services 多维数据集项目,我正在尝试获取它,以便开发人员可以在他们的本地计算机上进行处理。
我很确定最初的开发人员从多维数据集项目中为后端数据库生成了架构,然后针对该架构进行了工作。因此,我想从 Visual Studio 生成架构,而不仅仅是在 SQL Server Management Studio 中导出数据库。目前,当我尝试生成关系模式时,我收到一条错误消息,指出维度已绑定到用户表。
我的方法是否合理,如果是,我将如何进行?如果我的方法不合理,为什么不呢?
(注意:几天前我在 StackOverflow 上问过这个问题。当我回到这个问题时,我觉得这对它来说是一个更好的地方,所以我把它移到了这里。)
由于磁盘限制,我刚刚安装了带有 Data Tools 的 Visual Studio 并删除了我之前安装的 Management Studio,并且转换并不像我预期的那么容易。
大部分时间我都在为 Web 编程,而 VS2017 在这方面做得很好。不过,我使用 SSMS 来开发存储过程和一些高级用户工作,如分析和即席查询。问题是,我不知道在哪里可以找到我来(探查?!)和环境组织没有工具感到自然与现有的数据库上我的工具脚本工作...
那么,有没有办法在这种情况下使用 VS2017 还是应该重新安装 SSMS?
visual-studio ×10
sql-server ×7
ssdt ×5
ssis ×3
unit-test ×2
deployment ×1
etl ×1
sql-clr ×1
ssas ×1
ssis-2012 ×1
ssms ×1