首先,我知道我得到的错误可以通过创建引用项目(数据库服务器类型)然后在我的数据库项目中引用它来解决...但是,我觉得这有点矫枉过正,特别是对于小团队而言开发人员和数据库管理员之间没有特定的角色分离.但是,让我们再讨论一下这个问题...... DAC也是如此......不能使用受支持的有限对象的DAC b/c ...
问题 现在,问题是:我可以(以及如何)在构建我的数据库项目时禁用SQL03006错误.在我的情况下,生成此错误是因为我正在创建一些登录"未解决"的用户...我认为这应该是可能的,我希望,因为我"知道"在部署脚本之前服务器上将存在登录. .我也不想维护数据库服务器项目,所以我可以保持refs解决(除了服务器级别的登录,我什么都没有)...
解决方法 使用前/后部署脚本,让secript工作是微不足道的......
解决方法问题 您必须注释掉用户脚本(使用登录引用)以进行解决方法...一旦您这样做,.sqlpermissions就会弹出,说没有引用的用户......然后您必须注释权限并将它们放在post deploy脚本中......这种解决方法的主要缺点是你无法在最大程度上利用模式比较(你必须指定忽略用户/登录/权限)
所以我想要的只是1.仅维护DB项目(不引用DB Server项目)2.禁用/禁止SQL03006错误3.能够在我的DB项目中使用模式比较
我要求不可能吗?:)
干杯
PS如果有人知道更好的VS2010数据库项目模板/工具(对于SQL Server 2008 R2),请分享...
我刚开始使用Visual Studio 2010 Premium数据库项目.我必须说它确实摇滚.我无法弄清楚的一件事是如何避免SQL04151警告
过程:[dbo].[MyProc]对象[MyDatabase]有一个未解析的引用.[dbo].[MyItem].
我错过了一个简单的步骤吗?我在网上找到的只涉及tempdb.
Visual Studio 2010数据库项目的代码分析规则SR0007指出:
您应该通过在ISNULL函数中包装每个可以包含NULL值的列来明确指出如何处理比较表达式中的NULL值.
作为比较的一部分,表达式包含列引用...如果它比较包含列引用的表达式,则代码可能会导致表扫描.
这是否也适用于ISNULL,或者ISNULL是否永远不会导致表扫描?
t-sql sql-server datadude sql-server-2008 sql-server-data-tools
我有一个场景,我使用visual studio 2010数据库项目将更改部署到多个数据库安装,但在某些情况下,我想从该副本中排除一组视图.有没有办法使用构建配置来排除这些视图的部署?
我在这里错过了什么吗?似乎在VS2010中在数据库项目中创建新表的唯一选项是:
将表对象创建为文件,然后将所有约束(默认值)创建为单独的文件,然后将每个索引创建为单独的文件,将主键创建为单独的文件并依次打开...
要么
使用SSMS中的表设计器创建整个表模式,然后使用模式比较工具为表的每个元素创建单个SQL语句的单个文件,并将每个代码块复制到VS中新创建的文件中.
2年前问了这个问题,我希望答案已经改变了.请告诉我VS2010中的数据库项目有一个隐藏的表设计器,我忽略了它.
使用vsdbcmd部署我的数据库时:
vsdbcmd.exe /a:Deploy /manifest:MyDatabase.deploymanifest
Run Code Online (Sandbox Code Playgroud)
我得到:
SQL01268 .Net SqlClient Data Provider: Msg 50000, Level 16, State 127, Line 6 Rows were detected. The schema update is terminating because data loss might occur.
SQL01268 An error occurred while the batch was being executed.
这是很好的,但它并没有告诉我那里的dataloss会发生.为了找出我必须使用的<DeployToScript>True</DeployToScript>
,然后加载脚本以查看:
IF EXISTS (select top 1 1 from [dbo].[MyTable])
RAISERROR ('Rows were detected. The schema update is terminating because data loss might occur.', 16, 127) WITH NOWAIT
有没有办法让vsdbcmd在直接部署到DB而不必先生成sql时显示此信息?
谢谢
我在visual studio(2008)中有一个数据库项目,用于将我的数据库结构保存在版本控制系统(Git)中.我使用VS中的数据模式比较工具来维护这个数据库项目.我遇到的问题是我一直在丢失对新对象的权限.
那么我该怎么做:
我一直在研究在测试和持续集成环境中使用 RedGate 的 SQL 工具和 Microsoft Visual Studio Team System Database Edition(以前称为 Data Dude)。
我们需要做的是:
什么解决方案最适合我们的需求以及人们对这两种产品的意见、看法和体验是什么。您选择/会选择哪个?为什么?有没有我错过的替代方案?
sql-server continuous-integration redgate datadude sql-server-data-tools
我对Vs Data功能还不熟悉,这是我的第一个数据生成计划.我使用Vs2010数据库项目实现了一个数据库,并用它来部署到sql server express 2008数据库.所有表都使用标识列作为主键,并且它们使用外键彼此相关.
我设置了一个数据生成计划,但是当我尝试用它生成数据时,这些表只是按字母顺序填充,这当然会失败.唯一正确填充的表是查找表和其他种类的没有FK约束的独立实体.第一个表失败后会跳过其余的.
据推测,生成计划根据FK依赖性确定人口顺序.发生了什么?
编辑:有代表的人应该制作一个visual-studio-data-tools标签,因为DBPro不再是(也不是真的)产品名称.
database visual-studio-2010 datadude visual-studio-dbpro data-generation
我正在测试Visual Studio 2010的新数据库项目功能,并希望更改表中列的名称.我在创建脚本中更改了名称并将其部署在数据库中.生成的脚本刚刚删除了列并添加了一个具有正确名称的新列,但所有数据都已丢失.
是否有不会丢弃列数据的设置?
我正在寻找这个问题的"DataDude"解决方案.(如果有的话)
PRINT N'Altering [dbo].[Users]...';
GO
ALTER TABLE [dbo].[Users] DROP COLUMN [TestX];
GO
ALTER TABLE [dbo].[Users]
ADD [Testn] NVARCHAR (50) NULL;
GO
Run Code Online (Sandbox Code Playgroud)
谢谢,基思
在使用数据库项目(VS 2010)时,这是部署数据库VSDBCMD或SQLCMD的更好选择.除了默认变量(databasename,datapath和logpath)之外还有其他主要缺点吗?
datadude ×11
database ×3
sql-server ×2
deployment ×1
project ×1
redgate ×1
sql ×1
t-sql ×1
vsdbcmd ×1