我正在使用SSDT来管理我的数据库.现在它生成SQLCMD部署脚本.有没有办法让它生成普通的t-sql脚本?
SQL Server单元测试中的“测试初始化”脚本在每种测试方法之前运行,而“测试清除”在每种测试方法之后运行。
所以例如我有这个结构
UnitTests -- Main Project
- FooSchema -- Test Class
- SprocFoo1 -- Individual Unit Tests / Test Methods
- SprocFoo2
- BarSchema
- SprocBar1
- SprocBar2
Run Code Online (Sandbox Code Playgroud)
像这样的测试运行
-- Test Initialiaze for TestClass FooSchema
-- Pre-Test -- for SprocFoo1
-- Test -- for SprocFoo1
-- Post-Test -- for SprocFoo1
-- Pre-Test -- for SprocFoo2
-- Test -- for SprocFoo2
-- Post-Test -- for SprocFoo2
-- Test Cleanup for TestClass FooSchema
-- Test Initialiaze for TestClass BarSchema
-- Pre-Test …Run Code Online (Sandbox Code Playgroud) sql-server unit-testing visual-studio-2012 sql-server-data-tools
我有一个Visual Studio数据库项目或我的公司数据库的SSDT。
我有用于表,视图,存储过程等的文件夹,我想知道是否可以为触发器提供一个文件夹。
当前,触发器与表定义存储在同一文件中,如果可能,我想将它们分开。
使用SqlPackage.exe首次部署dacpac时,如何控制新数据库的逻辑和物理文件名.
标准的SQL语句是:
CREATE DATABASE Bar
ON PRIMARY (NAME = 'Foo', FILENAME = '...\Foo\Foo.mdf')
LOG ON (NAME = 'Foo_log', FILENAME = '...\Foo\Foo.ldf')
Run Code Online (Sandbox Code Playgroud) 我一直非常成功地使用数据库第一实体框架(EDMX)和SQL Server数据工具数据库项目 - 更改数据库中的模式和"从数据库更新模型"以使它们进入EDMX.我看到虽然实体框架7将放弃EDMX格式,我正在寻找一个新的流程,这将允许我将Code First与数据库项目结合使用.
我现有的很多开发和部署过程都依赖于拥有一个包含模式的数据库项目.源代码控制与代码一起部署,用于使用部署前和部署脚本完成数据迁移后的生产数据库更新.我不愿意放弃它.
作为这项工作的一部分,我会热衷于将一个大的EDMX拆分成许多较小的模型.这将意味着多个Code First模型引用相同的数据库.
假设我有一个现有的数据库和一个数据库项目 - 我想我将首先使用以下向导创建一组初始实体和上下文类 - 我会为每个模型执行此操作.
Add | New Item... | Visual C# Items | Data | ADO.NET Entity Data Model | Code first from database
Run Code Online (Sandbox Code Playgroud)
我的问题是 - 我从哪里去?如何处理架构更改?只要我可以更新数据库模式,我就可以使用模式比较操作来获取对项目的更改.
这些是我正在考虑的选项.
哪个最好?在尝试实现它之前,我还需要知道什么吗?还有其他更好的选择吗?
我试图用ssdt过滤表的某些行(左键单击表,查看数据,排序和过滤)
在这里,我只需要添加IS NULL一个条件到一个nvarchar字段.
但是一旦我应用过滤器,我就会收到错误:
关键字SET附近的语法不正确
看看编辑写的查询,我看到了这个问题fldName =,没有我NULL支票的迹象
我该怎么做?
这是结果:
SELECT TOP 1000 [Ktyi_TS002_IdTipoDocumento] ,
[nvc_TS002_TipoDocumento] ,[nvc_TS002_IdFunzioneControllo] ,[bit_TS002_Annullato]
FROM [dbo].[TS002_TipoDocumento]
WHERE [nvc_TS002_IdFunzioneControllo] =
Run Code Online (Sandbox Code Playgroud)
这是在谷歌中找到的数据编辑器的一些图像,以显示我们在谈论谁不知道ssdt:
我有一个用于SQL Server DB的Visual Studio 2015数据库项目,我可以在其中进行模式比较/数据比较,并手动将项目签入GIT.我想自动完成这个完整的模式/数据比较过程,生成脚本并将其检入GIT.有可能吗?如果是这样的话?
也许我会做这样的事情?使用EnvDTE自动化Visual Studio
注意:这似乎是与SSDT项目一起使用的编译器的一个问题,它显然已在2017年RC中修复.我的问题类似于这里描述的问题.
我有一些代码拒绝让我把它写成一个表达式的函数成员.简而言之,我想这样做:
void foo() => bar();
Run Code Online (Sandbox Code Playgroud)
但IDE发脾气并要求我这样写:
void foo() { bar(); }
Run Code Online (Sandbox Code Playgroud)
我的意思是,这是两个额外的角色,但我不确定它为什么抱怨,错误也没有意义.它给了我以下3个错误:
完整代码看起来像这样.
public static void foo() => bar("some param"); // Errors on this line.
static void bar(string myParam) { //20 lines of code }
Run Code Online (Sandbox Code Playgroud)
我在C#交互式窗口中对此进行了测试,所有内容都编译并正确运行.我在代码中找不到任何不可打印的字符.
这是使用VS 2015社区,目标框架是4.6.1
完整代码:
using System.Data.SqlClient;
using Microsoft.SqlServer.Server;
public partial class Triggers
{
private const string ConnectionString = "context connection = true";
private const string ReadInsertedTable = @"
SELECT ID,
(
SELECT *
FROM inserted AS …Run Code Online (Sandbox Code Playgroud) 对于构建服务器,我们需要为Visual Studio 2017无头安装SQL Server数据工具.
我们的构建服务器已经拥有"Visual Studio 2017的构建工具",它为无头构建提供了很好的支持.但是由于缺少MSBuild目标,任何SSDT项目的解决方案都会失败,例如:
[MSBuild] src\Database\Upfront.Database.sqlproj: Build default targets
[10:27:46][src\Database\Upfront.Database.sqlproj] E:\BuildAgent\work\7769fbf76d8b9008\src\Database\Upfront.Database.sqlproj(56, 3): error MSB4019: The imported project "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
首先,我尝试修改"Build Studio for Visual Studio 2017"安装的组件集,但似乎没有可用的SSDT组件.
其次,我尝试为Visual Studio 2017安装SSDT,它似乎没有正确安装到"VS 2017构建工具"配置文件中.它允许我创建一个新的VS 2017配置文件,例如SQL,因此安装了所需的MSBuild文件C:\Program Files (x86)\Microsoft Visual Studio\2017\SQL\; 但是它改变了我的msbuild环境变量,因此C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools找不到"Build Tools for VS 2017"文件(其中),导致C#项目无法构建.
似乎"用于Visual Studio 2017的SSDT"和"用于Visual …
“设置失败”递归太深;堆栈溢出0x800703E9。
我有Windows 10和最新的Visual Studio版本。我尝试重新启动以确保我拥有尽可能多的资源。我有4克公羊。