如何在不使用MS SQL Server Management Studio的情况下更改SQL Server中的默认数据库?

Mar*_*own 161 sql-server ssms sql-server-2005 default-database

我从SQL Server中删除了一个数据库,但事实证明我的登录设置为使用已删除的数据库作为其默认值.我可以使用连接对话框中的"选项"按钮连接到SQL Server Management Studio,并选择"master"作为要连接的数据库.但是,每当我尝试在对象资源管理器中执行任何操作时,它都会尝试使用我的默认数据库进行连接并失败.

有没有人知道如何在不使用object explorer的情况下设置我的默认数据库?

Mar*_*own 213

您可以使用sp_defaultdb系统存储过程设置默认数据库.以您完成后登录,然后单击"新建查询"按钮.之后,只需运行sp_defaultdb命令,如下所示:

Exec sp_defaultdb @loginame='login', @defdb='master' 
Run Code Online (Sandbox Code Playgroud)


小智 49

要以GUI方式执行,您需要编辑登录.其中一个属性是用于该登录的默认数据库.您可以在"安全性"节点下的"登录"节点下找到登录列表.然后选择您的登录名并右键单击并选择"属性".更改默认数据库,你的生活会更好!

请注意,具有sysadmin privs的人需要能够登录才能执行此操作或运行上一篇文章中的查询.


小智 38

感谢这篇文章,我找到了一个更简单的答案:

  1. 打开Sql Server Management Studio

  2. 转到对象资源管理器 - >安全性 - >登录

  3. 右键单击登录并选择属性

  4. 在属性窗口中更改默认数据库,然后单击"确定".

  • 这可能没有回答 OP 的问题,但它回答了我的问题。这是一个有用的答案。 (2认同)
  • 这在 Azure 数据库中是不可能的:/ (2认同)

Mar*_*rek 27

sp_defaultdb的替代方法(将在未来版本的Microsoft SQL Server中删除)可能是ALTER LOGIN:

ALTER LOGIN [my_user_name] WITH DEFAULT_DATABASE = [new_default_database]
Run Code Online (Sandbox Code Playgroud)

注意:与sp_defaultdb解决方案不同,用户和数据库名称不带引号.如果名称有特殊字符,则需要使用括号(最常见的示例是域用户,即域\用户名,如果没有括号,则无法使用).


Gre*_*g B 13

如果您无权更改默认数据库,则可以在查询顶部手动选择其他数据库...

USE [SomeOtherDb]
SELECT 'I am now using a different DB'
Run Code Online (Sandbox Code Playgroud)

只要您拥有其他数据库的权限,就可以正常工作


小智 8

  1. 单击"更改连接"图标
  2. 单击选项<<
  3. 从Connect to database下拉列表中选择数据库


小智 7

单击“连接到服务器”对话框和“连接属性”上的选项,您可以选择启动时要连接的数据库。最好将其保留为默认值,这将使 master 成为默认值。否则,连接到数据库后,您可能会无意中在错误的数据库上运行 sql。

在此输入图像描述

在此输入图像描述


Mub*_*har 6

我也更喜欢ALTER LOGIN命令,如接受的答案和此处所述

但对于 GUI 爱好者来说

  1. 转到 [服务器实例] --> 安全 --> 登录 --> [您的登录]
  2. 右键单击[您的登录]
  3. 更新页面底部的默认数据库选项

读书累了!!!看看下面的

在此输入图像描述