标签: sql-server-data-tools

使用SqlPackage.exe发布DACPAC时防止用户丢失

有没有办法阻止用户在使用SqlPackage.exe发布DACPAC时被删除,除了更改下面的设置,这可以防止所有对象在DACPAC中不被删除.

<DropObjectsNotInSource>True</DropObjectsNotInSource>
Run Code Online (Sandbox Code Playgroud)

我们部署到许多环境,每个环境都有不同的用户.目前的解决方法是:

  1. 为每个环境编写脚本,以便在部署后重新创建它们
  2. 使用/Action:Script并手动更改部署脚本.

虽然这些都不是理想的......

sql-server-data-tools

12
推荐指数
2
解决办法
1万
查看次数

SQL数据比较 - 缺少一些表

当通过VS 2013 pro使用SQL Server数据工具进行数据比较时,我遇到了一些情况,其中一些表似乎被错过了.

我的意思是TableA源服务器上有数据,但目标服务器上的等效表中没有数据.

但是,结果窗口甚至没有显示一行TableA.

此外,如果我在按"完成"之前尝试在下一步中过滤结果,TableA则不会显示为过滤选项.这几乎就像目标服务器上不存在该表一样.我已经通过以下方式验证了:

  • 通过SSMS连接并查看表列表
  • 运行 SELECT * FROM information_schema.tables

在这两种情况下,我都可以看到列出的表格.

有没有人见过这个?我错过了什么?

sql-server sql-server-2008 visual-studio-2013 sql-server-data-tools

12
推荐指数
1
解决办法
5421
查看次数

在ISNULL中包装可空列是否会导致表扫描?

Visual Studio 2010数据库项目的代码分析规则SR0007指出:

您应该通过在ISNULL函数中包装每个可以包含NULL值的列来明确指出如何处理比较表达式中的NULL值.

但是,在以下情况下违反了代码分析规则SR0006:

作为比较的一部分,表达式包含列引用...如果它比较包含列引用的表达式,则代码可能会导致表扫描.

这是否也适用于ISNULL,或者ISNULL是否永远不会导致表扫描?

t-sql sql-server datadude sql-server-2008 sql-server-data-tools

11
推荐指数
1
解决办法
2029
查看次数

SQL Server数据工具 - 恢复模式

我正在使用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项目以表明我想要简单的恢复模式,以便每次发布时它都会停止尝试将其更改为完整模式?

sql-server visual-studio-2010 sql-server-data-tools

11
推荐指数
1
解决办法
1433
查看次数

如何从SSDT发布脚本中删除ALTER DATABASE语句?

免责声明:在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)

我不希望数据库项目永远修改我的数据库设置,所以我在调试设置下取消选中此项:

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

高级发布设置截图

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

数据库设置截图 Management Studio中的数据库设置

我怎么能阻止这个?

sql-server publish database-project sql-server-2012 sql-server-data-tools

11
推荐指数
2
解决办法
5340
查看次数

如何通过SSDT的SQLPackage.exe将DACPAC文件发布到SQL Server数据库项目?

我使用SSDT为Visual Studio 2012 在这里和使用它的命令行工具SQLPackage.exe来发布.dacpac文件.

我想把它发布到SQL Server database project.我正在尝试使用本指南中的参数,但无法找到如何操作的方法.

我怎样才能做到这一点?

publish database-project dacpac sqlpackage sql-server-data-tools

11
推荐指数
1
解决办法
2万
查看次数

SSIS表达式设置两个变量

我正在尝试在SSIS中使用"表达式任务"来简单地初始化/设置两个变量.这个看似简单的任务让我疯狂,因为我不知道如何分离这些陈述:

@[User::testVariable]="1"  
@[User::testVar2]=3
Run Code Online (Sandbox Code Playgroud)

这给出了一个解析错误,我读了很多文档都无济于事.如何分离语句,我希望我不必使用多个表达式任务,因为我有很多变量......谢谢

expression ssis bids ssis-2012 sql-server-data-tools

11
推荐指数
2
解决办法
2万
查看次数

VS2013架构比较:针对SQL Server 2016 Express运行时"源不可用"

我正在尝试使用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,我得到了同样的错误.

sql-server visual-studio-2013 sql-server-data-tools

11
推荐指数
2
解决办法
5729
查看次数

SSDT Schema Compare会不断为用户找到差异?

标题说明了所有细节.当我在VS2015中使用架构比较工具用于我的SSDT项目和我在服务器上的数据库时.比较结果总是与用户不同.我检查它所说的差异,但环境之间没有任何区别.

我甚至从比较结果中更新了我的项目,试图纠正这些"差异".然后我又进行了另一次比较,同样的用户又回来了差异......什么!哈哈.

任何人都有一个线索会导致这个同步问题,或者我做错了什么?用户手动添加到服务器上的数据库,而不是通过SSDT部署,所以这可能是一个原因?

编辑:

在此输入图像描述

sql sql-server sql-server-data-tools visual-studio-2015

11
推荐指数
2
解决办法
1367
查看次数

SQL Server中的__RefactorLog表 - 可以放弃它吗?

SSDT(我怀疑)在你指向它的任何数据库中创建一个名为__RefactorLog的表.

如果我发布了一个版本是否有任何损害删除此表,因为我没有看到在部署时将其包含在架构创建脚本中的任何好处?

我自己也看不到任何不利因素,但我想向这里知识渊博的人提出问题,看看是否有我遗漏的东西......

sql-server sql-server-data-tools

11
推荐指数
1
解决办法
3244
查看次数