我们有两个数据库项目,x和x_audit.x有参考x_audit.
x_audit部署很好,但在尝试部署时x我们得到错误:
The reference to external elements from the source named x_audit.dbschema could not be resolved, because no such source is loaded.
相同的文件可以很好地部署到2005数据库,我们只在部署到2008时遇到此错误.如果它有任何区别,这是升级现有数据库而不是创建新数据库.它曾经在2005年和2008年都运作良好,不知道发生了什么变化.
谢谢
我有四个独立的项目:
MyUserControl - 需要对服务实现的引用IMyService
MyService - 实现IMyService
MySharedInterfaces - 包含IMyUserControl和IMyService
MyWebApp
用户控件需要在运行时动态加载.这实现IMyUserControl并具有IMyService将在运行时设置的类型属性.
麻烦就是重用类型的选项,MyWebApp没有重用IMyService接口.它总是从服务参考中再次生成它.如果我可以将它投射到MySharedInterfaces.IMyService我无法理解的情况下这不是问题,因为它应该完全相同.
用户控件期待某种类型IMyService.无论如何要么强制WebServiceReference.IMyService转回MySharedInterface.IMyService或强制WebServiceReference重用MySharedInterface.IMyService?
有没有办法阻止用户在使用SqlPackage.exe发布DACPAC时被删除,除了更改下面的设置,这可以防止所有对象在DACPAC中不被删除.
<DropObjectsNotInSource>True</DropObjectsNotInSource>
Run Code Online (Sandbox Code Playgroud)
我们部署到许多环境,每个环境都有不同的用户.目前的解决方法是:
/Action:Script并手动更改部署脚本.虽然这些都不是理想的......
使用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时显示此信息?
谢谢
我知道数据库不受支持CREATE SYNONYM,但我希望实现这将提供的功能.
我们有数据库A,其中包含数据库B上表的视图.问题是"数据库B"并不总是称为"数据库B".我们使用数据库项目进行部署,如果没有"数据库B",目前会出现"无效对象名称"错误.
目前的解决方法是打开.dbschema文件并执行查找和替换.我想另一个选择是创建一个表同义词的加载.
在不更改每个视图的情况下更改数据库的最佳方法是什么?
谢谢
我们将隔离级别设置为“未提交读”,如下所示。
TransactionOptions to = new TransactionOptions();
to.IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted;
using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.RequiresNew, to))
{
// Do Stuff
transaction.Complete();
}
Run Code Online (Sandbox Code Playgroud)
问题是,一旦连接返回到池中,它就不会重置回默认隔离级别,我理解这是设计使然(当您重用连接池中的连接时,事务隔离级别不会重置))。因此,当事务完成时,任何重用池中连接的操作都将以读取未提交隔离级别运行。
我尝试"SET TRANSACTION ISOLATION LEVEL READ COMMITTED"使用 SqlCommand 进行调用,但无法保证它将重用池中的相同连接。没有任何内容// Do Stuff暴露底层连接。
无论如何,是否可以重置隔离级别,而无需在对数据库的所有调用上显式设置隔离级别,以防万一此代码之前已运行过?
vsdbcmd ×2
c# ×1
datadude ×1
interface ×1
sql ×1
sql-server ×1
synonym ×1
transactions ×1
view ×1
wcf ×1