我从 SQLServer 删除了一个数据库,但结果是 我的登录名被设置为使用被删除的数据库作为其默认值。我可以通过使用连接对话框中的“ options”按钮并选择“ master”作为要连接的数据库来连接到 SQLServerManagementStudio。但是,每当我尝试在对象资源管理器中执行任何操作时,它都会尝试使用我的默认数据库进行连接,但是失败了。
有人知道如何设置我的默认数据库 不使用对象资源管理器吗?
您可以使用 sp _ defaultdb 系统存储过程设置默认数据库。完成后登录,然后单击“新建查询”按钮。之后,只需运行 sp _ defaultdb 命令,如下所示:
Exec sp_defaultdb @loginame='login', @defdb='master'
要使用 GUI 方式,您需要编辑您的登录名。它的一个属性是用于该登录的默认数据库。您可以在 Security 节点下的 Logins 节点下找到登录列表。然后选择您的登录名,右键单击并选择“属性”。更改默认数据库,您的生活将更好!
请注意,具有 sysadmin priv 的人需要能够登录才能执行此操作,或者运行上一篇文章中的查询。
如果您没有权限更改您的默认数据库,您可以在您的查询顶部手动选择一个不同的数据库..。
USE [SomeOtherDb] SELECT 'I am now using a different DB'
将工作,只要你有权限的 其他数据库
多亏了 这篇文章,我找到了一个更简单的答案:
打开 SqlServerManagementStudio
转到对象 Explorer-> Security-> Logins
右键单击登录名并选择属性
在属性窗口中更改默认数据库并单击 OK。
如果您无法登录到 SQLServer:
sqlcmd –E -S InstanceName –d master
参考文献: Https://support.microsoft.com/en-us/kb/307864
如果您使用 Windows 身份验证,并且您不知道通过用户名和密码作为用户登录的密码,您可以这样做: 在 SSMS 的登录屏幕上,点击右下角的选项,然后转到连接属性选项卡。然后,您可以手动键入您可以访问的另一个数据库的名称,在它显示的位置上,这将允许您连接。然后按照其他建议更改默认数据库
Https://gyazo.com/c3d04c600311c08cb685bb668b569a67
Sp _ defaultdb (其中 将在未来版本的 Microsoft SQL Server 中删除)的替代品可以是 ALTER LOGIN:
ALTER LOGIN
ALTER LOGIN [my_user_name] WITH DEFAULT_DATABASE = [new_default_database]
注意 : 提供的用户和数据库名称没有引号(与 sp_defaultdb解决方案不同)。如果 name 有特殊的字符,则需要使用括号(最常见的例子是域用户,它是 domain\username,如果没有括号就无法工作) :
sp_defaultdb
domain\username
ALTER LOGIN me WITH DEFAULT_DATABASE = my_database
但是
ALTER LOGIN [EVILCORP\j.smith28] WITH DEFAULT_DATABASE = [prod\v-45]
这可能会或可能不会准确地回答这个问题,但我遇到了这个问题(和问题) ,当我改变了我的帐户有一个新的数据库,我已经创建了我的“默认数据库”。然后,我删除了该数据库,并希望从头开始测试我的创建脚本。我注销了 SSMS 并打算重新登录,但是被拒绝了——无法登录到默认数据库是一个错误。噢!
我所做的是,在 SSMS 的登录对话框中,转到 Options,Connection Properties,然后在“ Connect to database”组合框中键入 master。点击连接。我被录取了。从那里您可以运行命令:
master
ALTER LOGIN [DOMAIN\useracct] WITH DEFAULT_DATABASE=[master] GO
我也更喜欢 ALTER LOGIN命令,因为在接受的答案和描述 给你
但是对于 GUI 爱好者来说
厌倦了阅读! ! ! 只是看看下面
单击“连接到服务器”对话框中的选项和“连接属性”中的选项,可以在启动时选择要连接到的数据库。最好让它默认,这将使主作为默认。否则,在连接到数据库之后,可能无意中在错误的数据库上运行 sql。
有一个小图标用于更改连接,单击该图标,然后转到 Options 并选择 db from Connect to database 下拉菜单
使用 下面的 MSSQL 查询,你可以改变 Sqlcmd上的 资料库:
USE testdb GO
然后,你可以检查 当前使用的数据库:
SELECT DB_NAME() GO
Testdb
然后,你可以显示 所有现有的数据库:
SELECT name FROM master.sys.databases GO
师父 Tempdb 模特 MSDB Testdb
此外,如果不在 Sqlcmd上指定数据库,则使用 “主”数据库作为 默认情况下。