看起来SSDT仅支持抑制警告但不支持错误.我有很多错误,都说明:
错误4 SQL71561:视图:[dbo].[x]有一个未解析的对象[DB1]的引用.[dbo].[y].[column]
出于特定原因,我不想在此数据库项目中引用DB1.我只是想在构建项目时忽略这些错误.我能够解决这些错误的唯一方法是转到每个文件(视图)并将Build Action设置为None.在项目级别或文件级别禁止TSql警告不起作用(我假设这只会抑制警告).而且,我没有设置将T-SQL警告视为错误的选项.
有更好的方法吗?
database error-handling visual-studio-2010 sql-server-data-tools
我有一个在VS2008中创建的SQL Server CLR触发器项目.在VS2012中打开项目没有任何问题,但是在构建解决方案时,我得到SQL71501错误,使用Trigger:[...]有一个未解析的对象引用[...].
根据我的阅读,这是由于项目中缺少数据库引用.当我尝试添加数据库引用时,我得到了"添加数据库引用"对话框,它提供了三个选项:
进一步阅读建议没有为第一个选项选择数据库项目的原因是因为没有通过服务器资源管理器添加数据连接.在我的情况下肯定存在数据连接,当我的项目打开时,我可以很高兴地浏览数据库,查看数据等.
我认为它可能与目标框架有关,所以我尝试了3.5甚至2的目标,但同样的问题也出现了.
我觉得我缺少一些基本的东西,但是不能完全解决它.任何帮助将不胜感激.
使用VS2010数据库项目,我可以定义目标(或不是)数据库,设置操作(仅创建脚本或创建脚本并部署到目标),执行"部署"(通过VS或MSBuild)并获取结果脚本.
我从未使用过"创建和部署"操作,因为我只使用生成的脚本来构建安装程序,稍后将作为安装过程的一部分应用该脚本.
此功能允许我创建升级(仅自上一版本以来的更改)或完整安装脚本(如果指向无目标数据库).
在使用VS 2012或SSDT时,我似乎无法找到正确的选项组合来重现这种"仅脚本"行为以进行升级和完全安装.
我发现这个问题涉及如何单击VS中的按钮,但它没有解决如何在MSBuild中完成此操作.
有人能指出我这个特定配置的有用资源吗?
sql-server deployment visual-studio-2012 sql-server-data-tools
我正在运行安装了SSDT(SQL Server数据工具)的SQL Server 2012和VS 2010.我的dev DB使用存储过程,函数,CLR对象等.它有一个大约500GB的prod数据的快照.
我创建了SQL Server数据库项目,然后导入了数据库.这在模式名称下创建了所有表,视图,过程和函数文件.好东西 - 现在我可以像其他VS项目一样进行版本控制,创建部署等.到目前为止,这么好.
但是,我对在SQL Server数据库项目下更改/添加procs/tables的开发过程感到困惑.看来我所做的任何更改都应用于某些LocalDb/Projects数据库,而不是我的dev数据库.
我想在LocalDb中编写所有对象,然后通过Publish构建并部署到我的dev数据库吗?我担心dev DB中的现有表,因为如果发布过程丢失并重新创建表,我将丢失我的prod数据快照.
SQL Server数据库项目中要遵循的正确开发过程是什么?
所以,我在Visual Studio 2012中有一个SSDT(SQL Server数据工具)项目.当我构建这个项目时,没有错误 - 它构建正常(甚至没有警告或消息).
但是,如果我尝试发布,我得到:
The script file could not be found (没有更多信息).
如果我将项目与现有数据库进行模式比较,我得到的只有:
Cannot generate deployment plan (再次,没有更多信息).
只有当我执行"运行代码分析"时,才会收到可能意味着什么的错误:
SQL72043: 7 elements are in an error state
我知道这个错误可能是由于表定义中缺少逗号或类似的琐碎错误造成的,但是我已经把我的头发撕掉几个小时,查看项目中的每一行SQL代码以找出问题.有什么方法可以让我更清楚地知道我的代码行导致错误?
安装自定义CLR对象后,Sql Server Developer Tools(SSDT)VS2012将不允许更新.错误是"检测到源架构漂移.按比较刷新.刷新后同样的事情发生.
尝试在设置中,我将对象设置为仅存储过程.设置 - >常规 - >阻止可能的数据丢失 - >尝试打开和关闭.
有没有办法阻止用户在使用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
多年来,我们使用以下代码在基类中为我们的DAL进行功能测试设置数据库,这对我们来说非常有效.
/// <summary>
/// Initializes the test class by creating the integration database.
/// </summary>
[TestInitialize]
public virtual void TestInitialize()
{
DataContext = new DataContext(ConnectionString);
CleanupPreviousTestRunDatabases();
if (DataContext.Database.Exists())
{
DataContext.Database.Delete();
}
DataContext.Database.Create();
DataContext.Database.ExecuteSqlCommand(String.Format(Strings.CreateLoginCommand, DatabaseUserName, DatabasePassword));
DataContext.Database.ExecuteSqlCommand(String.Format("CREATE USER {0} FOR LOGIN {0}", DatabaseUserName));
DataContext.Database.ExecuteSqlCommand(String.Format("EXEC sp_addrolemember 'db_owner', '{0}'", DatabaseUserName));
}
Run Code Online (Sandbox Code Playgroud)
但是,使用Entity Framework不会设置数据库的所有组件,我们希望捕获EF DAL模型与实际数据库之间的差异.
我们使用SSDT工具/ Visual Studio数据库项目来完成所有数据库工作,我知道你可以编写SQL单元测试,在那些SQL单元测试中,我已经看到了基于数据库项目设置和创建数据库的能力本身.这是我想要做的,但是来自我们的其他功能测试库.
我可以引用这些库并编写一些设置代码,但我正在寻找的是:
a)如何提供用于部署的数据库项目?
b)如何在代码而不是app.config中指定连接字符串,例如使用localdb而不是动态命名的数据库?
namespace Product.Data.Tests
{
using Microsoft.Data.Tools.Schema.Sql.UnitTesting;
using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestClass]
public class FunctionalTest
{
[TestInitialize]
public virtual void TestInitialize()
{
SqlDatabaseTestClass.TestService.DeployDatabaseProject();
SqlDatabaseTestClass.TestService.GenerateData();
}
}
} …Run Code Online (Sandbox Code Playgroud) c# unit-testing entity-framework visual-studio sql-server-data-tools
我在安装Visual Studio 2017的SQL Server数据工具时遇到问题
我收到以下错误(已翻译):
The requested meta file operation is not supported (0x800707D3)
Run Code Online (Sandbox Code Playgroud)
截图:见这里
日志文件可在此处获取:https: //www.dropbox.com/s/e34kry9ycj76j7n/SSDT-Setup-ENU_20171219090643.log?dl = 0
这是链接日志文件中的相关部分:
[13C4:3020][2017-12-19T10:07:22]i000: MainViewModel.OnPackageActionProgress: Percent completed: 0, Overall progress: 27
[13C4:3020][2017-12-19T10:07:22]i000: MainViewModel.OnPackageActionProgress: Percent completed: 0, Overall progress: 27
[13C4:3020][2017-12-19T10:07:22]i000: MainViewModel.OnPackageActionProgress: Percent completed: 0, Overall progress: 27
[13C4:3020][2017-12-19T10:07:22]i000: MainViewModel.OnPackageActionProgress: Percent completed: 0, Overall progress: 27
[13C4:3020][2017-12-19T10:08:49]i000: MainViewModel.OnPackageActionProgress: Percent completed: 0, Overall progress: 27
[13C4:3020][2017-12-19T10:08:51]i000: MainViewModel.OnPackageActionProgress: Percent completed: 0, Overall progress: 27
[13C4:3020][2017-12-19T10:08:51]i000: MainViewModel.OnPackageActionProgress: Percent completed: 0, Overall progress: 27
[13C4:3020][2017-12-19T10:08:51]i000: …Run Code Online (Sandbox Code Playgroud) sql ssms sql-server-data-tools visual-studio-2017 sql-server-2017