在本地数据库上执行数据库部署(来自VS SQL Server数据库项目)失败后,数据库处于保持单用户模式的状态(部署以单用户模式运行).
当我从SSMS连接到它并尝试类似以下内容:
ALTER DATABASE MyDatabase
SET MULTI_USER;
GO
Run Code Online (Sandbox Code Playgroud)
我收到错误:
目前无法更改数据库'MyDatabase'的状态或选项.数据库处于单用户模式,用户当前已连接到该用户.
我尝试使数据库脱机,SSMS告诉我成功,但实际上并没有做任何事情.到目前为止,我只能通过删除和重新创建数据库来解决这个问题(这有点好,因为它只是一个本地测试数据库).但是,我希望能够重置状态.
如何说服SQL Server将此数据库从单用户模式中删除?
当尝试使用以下连接属性通过 Visual Studio 2022 (17.5.0) 连接到实时 Azure 数据库时,我遇到了一个非常不寻常的错误:
使用发布数据库功能时,目标数据库连接(只读)完全正常。但是,当单击“编辑”>“高级”时,Visual Studio 会自动将“信任服务器证书”设置为false。加密仍设置为true。
我使用不同的机器(较低的 VS 版本)检查了相同的场景,但它不会覆盖连接属性。
对于我对SQL Server的所有部署,我使用的是Redgate的SQL Compare.是否有类似的部署到PostgreSql的工具?
编辑:我不是在寻找比较数据的工具.我需要比较DDL:表,函数,索引等,并生成部署脚本.因此,这与所提到的可能重复的问题不重复.
我有一个连接到Oracle或SQL Server数据库的ASP .NET应用程序.已经开发了一个安装程序,使用诸如"restore database ..."之类的sql命令将新数据库安装到现有SQL Server,该命令只是恢复我们保持在源代码管理下的".bak"文件.
我是Oracle的新手,我们的应用程序最近才被移植到与10g兼容.
我们目前正在使用"exp.exe"工具生成".dmp"文件,然后使用"imp.exe"将其导入开发人员框.
您将如何创建"Oracle数据库安装程序"?
您是否会使用脚本文件创建数据库,然后使用所需的默认数据填充数据库?
你会在幕后运行"imp.exe"工具吗?
我们是否需要为系统管理员提供一个干净的界面,以便他们可以选择目标服务器并完成,或者我们应该只提供".dmp"文件?什么是最佳做法?
谢谢.
背景:
我正在使用Visual Studio 2010中的部署工具.
我右键单击了我的项目并选择了"打包/发布"设置.把我所有的设置放在那里......
然后我使用"web deploy"将文件传输到运行远程代理服务的远程服务器,这很正常.我在我的Web.Release.config上做的转换做了他们的事情,服务器可以访问我手动创建的数据库.
问题:
我的下一步是让数据库部署也能正常工作.我进入了Package/Publish SQL选项卡并输入了目标数据库的Connection字符串.
(Data Source=MyDBServer;Initial Catalog=Database2;User ID=User;Password=pass)
Run Code Online (Sandbox Code Playgroud)
此数据库为空,准备接受导入.
我还输入了源数据库的连接字符串.它位于同一台服务器上.
(Data Source=MyDBServer;Initial Catalog=Database;User ID=User;Password=pass)
Run Code Online (Sandbox Code Playgroud)
Database Scripting选项设置为Schema和Data(更改此选项没有区别),数据库脚本设置为[Auto Generated Schema and Data]
当我现在部署它时,我收到错误:
错误4 Web部署任务失败.((09/06/2010 16:41:51)在远程计算机上处理请求时发生错误.)
(09/06/2010 16:41:51)在远程计算机上处理请求时发生错误.目前不期望输入类型"未知".序列化流可能已损坏.
附加信息:
我可以成功创建一个没有问题的包.我查看了zip中的内容,可以看到SQL生成正常(因此连接数据库没有问题).然后,我可以复制此SQL并将其作为新数据库的新查询运行,并且可以很好地创建表和数据.
我似乎无法找出出错的地方,我用Google搜索错误,并且整个互联网上都没有条目.有人有主意吗?
附录:
为了进一步了解可能发生的情况,我将包发送到服务器并使用IIS导入它.它告诉我,我需要SQL Server管理对象.所以我安装了它.接下来尝试它告诉我我的用户没有创建数据库的权限,我认为这一定是问题.:授予访问权限 - 重新运行.通过!所以我删除了所有的表,然后回到VS2010点击发布,我得到了同样的错误.:(
我正在使用SqlPackage.exe我的部署.我已经阅读了这里的文档以供使用SqlPackage.exe.
该文档仅说明一个变量的synax:
为特定于操作的变量指定名称值对; {VARIABLENAME} = {}值.DACPAC文件包含有效SQLCMD变量的列表.如果没有为每个变量提供值,将导致错误.
我的问题是文档没有说明如何将多个参数传递给Variables参数.例如,我想这样做:
sqlpackage.exe ...args go here... /Variables:VarToOverride=Value1,Var2ToOverride=Value2
Run Code Online (Sandbox Code Playgroud)
有谁知道这个的语法?
我在Entity Framework中创建了模型,然后从该模型创建了数据库.
在客户机中执行此操作的最佳方法是什么?
如果实体框架尝试连接到数据库并找到必要的表并且那些不存在,则会出错.
在客户端计算机中创建这些表的最佳方法是什么?
使用模型生成的SQL文件?如果是这样,我该如何执行呢?
如果重要的话,我正在使用SQL Server Express,尽管这个问题可能对任何数据库都是通用的.
我有一个单独分配给几个客户端的交流#.net应用程序,偶尔我们会添加一些新功能或修复一些错误并经常在数据库中进行更改.我使用单击一次部署方法将exe更新到我的客户端PC.SQL服务器实例已安装在他们的系统上.
我想知道如何更新每个exe更新的sql数据库.
请记住,这是可能的,一个客户正在2版本没有更新,版本3,但第4版发布时,随后他更新应用程序.在这种情况下,我需要在他的数据库上执行两个脚本.一个用于版本3,另一个用于当前版本,即4.
谢谢
我正在Visual Studio 2012下开发ASP.NET Web窗体应用程序.我正在使用Web Deploy和Publish Web对话框进行应用程序部署.我正在尝试使用更新数据库功能部署数据库模式.我输入了一个指向远程SQL Server的连接字符串.如果单击"测试连接"按钮,Visual Studio会说测试连接成功.

然后我转到预览选项卡,然后单击预览数据库链接.

在打开的窗口中,我收到了消息
Web部署任务失败.(无法生成部署脚本.无法连接到目标服务器.有关详细信息,请访问:http: //go.microsoft.com/fwlink/?LinkId = 221672 #ERROR_EXECUTING_METHOD.)
其他项目文件正常部署.我可以使用SQL Server Management Service连接到SQL Server.但为什么数据库无法更新?我试图禁用服务器防火墙 - 没有运气.
更新
如果我sa在DatabaseEntitiesRaw的连接字符串中使用SQL Server身份验证和登录而不是Windows身份验证,则一切正常.但Windows身份验证适用于SSMS,我想使用它,因为我只部署在公司域内的计算机上.dbDacFx不能与Windows身份验证一起使用吗?
asp.net database-deployment webdeploy sql-server-2012 visual-studio-2012
假设您有一个数据库项目,并且您没有在Database.sqldeployment设置中选中"始终重新创建数据库".并假设您按照要部署的名称部署到已具有数据库的服务器.
在其他情况下数据库部署会生成带有"DROP DATABASE"语句的脚本吗?
如果您从未希望通过右键单击数据库项目并选择"部署"生成的部署脚本来删除数据库,那么您可以采取哪些步骤来防止这种情况发生?
sql-server database-project visual-studio-2010 database-deployment drop-database
我有一个SQL Server 2008数据库项目,我正在尝试使用Visual Studio 2010进行部署.当我单击部署时,构建工作正常,但在创建部署脚本并开始执行它之后,我收到以下错误:
错误8 SQL80001:'DatabaseName'不是可识别的选项.
错误7 SQL80001:':'附近的语法不正确.
查看部署脚本,它包含以下行:
:setvar DatabaseName"DEV_DB"
...
走
:出错时
因此,看起来SQL Server没有在SQLCMD模式下运行部署脚本来理解该语法.如果我正在复制并粘贴到SSMS中,我可以设置该选项,但我想直接从Visual Studio进行部署.哪里有VS运行SQLCMD模式这个脚本设置或如何设置的脚本中使用SQLCMD语法不产生?
谢谢.
sqlcmd database-project visual-studio-2010 database-deployment sql-server-2008
我有一个 VS2012 数据库项目,其中包括表、存储过程、视图等。
然后我有第二个数据库项目,其中包含对第一个项目的数据库引用。我已确保从“项目属性 -> 调试 -> 高级”菜单中选择“包括复合对象”选项。
当我构建第二个项目并获取生成的 DACPAC 文件并通过 SSMS2012 部署它时,它不会创建第一个项目的对象。
我错过了什么吗?为什么复合对象不包含在 DACPAC 中?
database-deployment visual-studio-2012 ssms-2012 dacpac sql-server-data-tools
sql-server ×4
sql ×3
c# ×2
.net ×1
asp.net ×1
automation ×1
dacpac ×1
database ×1
deployment ×1
msdeploy ×1
oracle ×1
postgresql ×1
sqlcmd ×1
ssms-2012 ×1
webdeploy ×1