繁体   English   中英

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

[英]How to change default database in SQL Server without using MS SQL Server Management Studio?

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

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

您可以做的是使用 sp_defaultdb 系统存储过程设置默认数据库。 像您所做的那样登录,然后单击“新建查询”按钮。 之后只需运行 sp_defaultdb 命令,如下所示:

Exec sp_defaultdb @loginame='login', @defdb='master' 

要以 GUI 方式进行操作,您需要编辑您的登录信息。 它的属性之一是用于该登录的默认数据库。 您可以在安全节点下的登录节点下找到登录列表。 然后选择您的登录名并右键单击并选择“属性”。 更改默认数据库,您的生活会更好!

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

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

ALTER LOGIN [my_user_name] WITH DEFAULT_DATABASE = [new_default_database]

注意:与sp_defaultdb解决方案不同, sp_defaultdb用户和数据库名称不带引号。 如果名称有特殊字符,则需要括号(最常见的例子是域用户,它是domain\\username ,没有括号就不能工作)。

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

  1. 打开 SQL Server 管理工作室

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

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

  4. 并在属性窗口中更改默认数据库并单击确定。

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

USE [SomeOtherDb]
SELECT 'I am now using a different DB'

只要您对另一个数据库有权限就可以工作

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

我也更喜欢ALTER LOGIN命令,如已接受的答案并在此处描述

但对于 GUI 爱好者

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

读腻了!!! 看看下面

在此处输入图片说明

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

在此处输入图片说明

在此处输入图片说明

如果您无法登录 SQL Server:

sqlcmd –E -S InstanceName –d master

参考: https : //support.microsoft.com/en-us/kb/307864

这可能会也可能不会完全回答这个问题,但是当我更改我的帐户以拥有我创建的新数据库作为我的“默认数据库”时,我遇到了这个问题(和问题)。 然后我删除了该数据库并想从头开始测试我的创建脚本。 我注销了 SSMS 并打算重新登录,但被拒绝了——无法登录到默认数据库是错误。 哦!

我所做的是,在 SSMS 的登录对话框中,转到选项、连接属性,然后在“连接到数据库”组合框中键入master 单击连接。 让我进来。从那里你可以运行命令:

ALTER LOGIN [DOMAIN\useracct] WITH DEFAULT_DATABASE=[master]
GO

有一个用于更改连接的小图标,单击该图标,然后单击 go 到选项和 Select 数据库从连接到数据库下拉

在此处输入图像描述

使用下面的 MSSQL 查询,您可以更改sqlcmd上的数据库

USE testdb
GO

然后,您可以检查当前使用的数据库

SELECT DB_NAME()
GO

测试数据库

然后,您可以显示所有现有的数据库

SELECT name FROM master.sys.databases
GO

掌握

临时数据库

model

数据库

测试数据库

此外,如果您没有在sqlcmd上指定数据库,则默认使用“master”数据库

如果您使用 Windows 身份验证,并且您不知道通过用户名和密码作为用户登录的密码,您可以这样做:在 SSMS 的登录屏幕上单击右下角的选项,然后转到连接属性选项卡. 然后您可以手动输入您有权访问的另一个数据库的名称,在它显示的位置,这将允许您连接。 然后按照其他建议更改默认数据库

https://gyazo.com/c3d04c600311c08cb685bb668b569a67

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM