有没有办法阻止用户在使用SqlPackage.exe发布DACPAC时被删除,除了更改下面的设置,这可以防止所有对象在DACPAC中不被删除.
<DropObjectsNotInSource>True</DropObjectsNotInSource>
Run Code Online (Sandbox Code Playgroud)
我们部署到许多环境,每个环境都有不同的用户.目前的解决方法是:
/Action:Script并手动更改部署脚本.虽然这些都不是理想的......
当通过VS 2013 pro使用SQL Server数据工具进行数据比较时,我遇到了一些情况,其中一些表似乎被错过了.
我的意思是TableA源服务器上有数据,但目标服务器上的等效表中没有数据.
但是,结果窗口甚至没有显示一行TableA.
此外,如果我在按"完成"之前尝试在下一步中过滤结果,TableA则不会显示为过滤选项.这几乎就像目标服务器上不存在该表一样.我已经通过以下方式验证了:
SELECT * FROM information_schema.tables在这两种情况下,我都可以看到列出的表格.
有没有人见过这个?我错过了什么?
sql-server sql-server-2008 visual-studio-2013 sql-server-data-tools
Visual Studio 2010数据库项目的代码分析规则SR0007指出:
您应该通过在ISNULL函数中包装每个可以包含NULL值的列来明确指出如何处理比较表达式中的NULL值.
作为比较的一部分,表达式包含列引用...如果它比较包含列引用的表达式,则代码可能会导致表扫描.
这是否也适用于ISNULL,或者ISNULL是否永远不会导致表扫描?
t-sql sql-server datadude sql-server-2008 sql-server-data-tools
我正在使用SQL Server数据工具(SSDT)来管理我的数据库架构.每次我选择发布对架构的更改时,脚本都包含以下内容:
IF EXISTS (SELECT 1
FROM [master].[dbo].[sysdatabases]
WHERE [name] = N'$(DatabaseName)')
BEGIN
ALTER DATABASE [$(DatabaseName)]
SET RECOVERY FULL
WITH ROLLBACK IMMEDIATE;
END
Run Code Online (Sandbox Code Playgroud)
问题是,我不希望它将恢复模式更改为FULL.我希望它是简单的.
如何修改我的SSDT项目以表明我想要简单的恢复模式,以便每次发布时它都会停止尝试将其更改为完整模式?
免责声明:在SO上有一个类似的问题似乎是指旧版本的SSDT.所选答案引用了不在我的项目中的设置文件.我相信我在正确设置的新项目格式中有相同的设置.
我是SSDT的新手,我不相信它不会以非预期的方式改变我的数据库.按照我想要的方式获取设置后,我尝试了一个发布,看看它会尝试对我的数据库做什么.我将这些语句添加到发布脚本中:
ALTER DATABASE [$(DatabaseName)]
SET ANSI_NULLS ON,
ANSI_PADDING ON,
ANSI_WARNINGS ON,
ARITHABORT ON,
CONCAT_NULL_YIELDS_NULL ON,
CURSOR_DEFAULT LOCAL,
RECOVERY FULL,
AUTO_UPDATE_STATISTICS ON
WITH ROLLBACK IMMEDIATE;
ALTER DATABASE [$(DatabaseName)]
SET PAGE_VERIFY NONE
WITH ROLLBACK IMMEDIATE;
EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)]
SET TRUSTWORTHY OFF
WITH ROLLBACK IMMEDIATE';
Run Code Online (Sandbox Code Playgroud)
我不希望数据库项目永远修改我的数据库设置,所以我在调试设置下取消选中此项:

此外,在高级发布设置下:

在项目设置下| 数据库设置我使一切都与我的数据库匹配

我怎么能阻止这个?
sql-server publish database-project sql-server-2012 sql-server-data-tools
我使用SSDT为Visual Studio 2012 在这里和使用它的命令行工具SQLPackage.exe来发布.dacpac文件.
我想把它发布到SQL Server database project.我正在尝试使用本指南中的参数,但无法找到如何操作的方法.
我怎样才能做到这一点?
publish database-project dacpac sqlpackage sql-server-data-tools
我正在尝试在SSIS中使用"表达式任务"来简单地初始化/设置两个变量.这个看似简单的任务让我疯狂,因为我不知道如何分离这些陈述:
@[User::testVariable]="1"
@[User::testVar2]=3
Run Code Online (Sandbox Code Playgroud)
这给出了一个解析错误,我读了很多文档都无济于事.如何分离语句,我希望我不必使用多个表达式任务,因为我有很多变量......谢谢
我正在尝试使用Visual Studio 2013.5与SQL Server数据工具12.0.50730.0针对SQL Server 2016(13.0.300)Express数据库运行架构比较.
我可以配置源连接OK,当我在连接属性对话框中点击"测试连接"时,它会显示"测试连接成功".
但是,当我在架构比较窗口中点击"比较"时,它会显示"初始化比较..."几秒钟,然后"源不可用:"
只有在我使用SQL Server 2016作为源,其他服务器正常工作时才会发生这种情况.
这是一个错误吗?
编辑:我也尝试在VS2015中使用SSDT 14.0.50730.0,我得到了同样的错误.
标题说明了所有细节.当我在VS2015中使用架构比较工具用于我的SSDT项目和我在服务器上的数据库时.比较结果总是与用户不同.我检查它所说的差异,但环境之间没有任何区别.
我甚至从比较结果中更新了我的项目,试图纠正这些"差异".然后我又进行了另一次比较,同样的用户又回来了差异......什么!哈哈.
任何人都有一个线索会导致这个同步问题,或者我做错了什么?用户手动添加到服务器上的数据库,而不是通过SSDT部署,所以这可能是一个原因?
编辑:
SSDT(我怀疑)在你指向它的任何数据库中创建一个名为__RefactorLog的表.
如果我发布了一个版本是否有任何损害删除此表,因为我没有看到在部署时将其包含在架构创建脚本中的任何好处?
我自己也看不到任何不利因素,但我想向这里知识渊博的人提出问题,看看是否有我遗漏的东西......
sql-server ×7
publish ×2
bids ×1
dacpac ×1
datadude ×1
expression ×1
sql ×1
sqlpackage ×1
ssis ×1
ssis-2012 ×1
t-sql ×1