利用存储过程来重命名SQL Server数据库

最近遇到一个需要在多用户模式下重新命名数据库的Case, 因为数据库可能被其他用户使用,所以直接修改可能会失败。对于此种情况,我们可以等所有用户结束使用数据库时修改,或者是将数据库切换到单用户模式下进行操作。

有时候,我们在开发过程中需要直接把生产环境的数据库拿到开发环境来测试开发。我们可以直接重命名生产环境上的数据库。这样以来,即使你有些SQL没有保存,也可以直接从原来的数据库中抓取。

有两个重要的细节我们必须注意

  • 当重名名数据库时, filegroup的名字和数据文件名(.mdf,.ldf)并不会发生变化。
  • 用户必须切换到Master数据库上下文环境中,并具有SA的权限才可以重名名数据库。
USE master;
GO
-- 将数据库设置为单用户模式
EXEC sp_dboption AdventureWorks, ‘Single User‘, True
GO
-- 重命名数据库
EXEC sp_renamedb ‘AdventureWorks‘, ‘AdventureWorks_New‘
GO
-- 在将数据库设置回多用户模式
EXEC sp_dboption AdventureWorks_New, ‘Single User‘, False
GO

参考文献

利用存储过程来重命名SQL Server数据库

时间: 2024-08-26 11:56:57

利用存储过程来重命名SQL Server数据库的相关文章

SQL Server数据库存储过程中拼接字符串注意的问题

在SQL Server数据库中书写复杂的存储过程时,一般的做法是拼接字符串,最后使用EXEC sp_executesql '拼接的字符串' 查询出结果. 先看一段代码: 1 -- ============================================= 2 -- Author: XXX 3 -- Create date: 2014-09-19 4 -- Description: 获取学生列表信息 5 -- ====================================

SQL server数据库之存储过程

在说存储过程之前我们先说一下SQL server数据库的一些基本语法 -- 0. Sql server中的代码块 /* 类似于各种开发语言,sql server也具有代码块的分割,大部分语言代码块用大括号分割({})*/ begin end --用于sql server数据库中的代码分割 -- 一. 变量的定义.赋值.输出 declare @a int--定义变量 set @a=5 --变量赋值 print @a --打印变量的值 --使用select语句赋值 --select既可以用于变量赋值

C#与sql server数据库存储过程的操作实例

通过这几天的学习和实际操作,把C#与sql server数据库存储过程的操作搞清楚了. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Linq; using System.Text; using System.Windows.

[Excel]利用 Excel 2012 读取 SQL Server 数据库

进入 Excel 之后,选择"数据"→"从其他来源"→"从 SQL Server" 选择要连接的数据库,输入"服务器名称"和"登入认证"的资讯. 挑选数据库和数据表 完成数据设定 一般来说按下"确定"就可以了:如果担心数据过重载入过久的话,可以选择"内容",来做进一步的调整 此时可以选择"定义"的页签,将"命令类型"更改为&qu

50种方法优化SQL Server数据库查询(转载)

原文地址:http://www.cnblogs.com/zhycyq/articles/2636748.html 查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用

c#.net 是如何访问 SQL Server 数据库

1.导入命名空间 using System.Data.SqlClient; //连接SQLServer 数据库专用 2.创建连接 SqlConnection lo_conn = New SqlConnection("Server=服务器名字或IP;Database=数据库名字;uid=用户名;pwd=密码"); 3.打开连接,第2步并没有真正连接数据库 lo_conn.Open(); //真正与数据库连接 4.向数据库发送SQL命令要使用SqlCommand: SqlCommand l

影响SQL Server数据库应用性能的几个常见因素

本文转自:http://blogs.msdn.com/b/apgcdsd/archive/2012/01/18/sql-server-2012-1-18.aspx 影响SQL Server数据库应用性能的几个常见因素 性能问题是困扰数据库用户的常见问题之一.经常会有人因为遇到性能问题,质疑SQL Server处理大型数据应用的能力.其实,作为一个在市场上经营了二十多年,出了好几代版本的数据库产品,SQL Server作为一个企业级数据库的能力,是毋庸置疑的.在实际应用中,数据量达到几百GB,甚至

第一章、关于SQL Server数据库的备份和还原(sp_addumpdevice、backup、Restore)

在sql server数据库中,备份和还原都只能在服务器上进行,备份的数据文件在服务器上,还原的数据文件也只能在服务器上,当在非服务器的机器上启动sql server客户端的时候,也可以通过该客户端来备份和还原数据库,但是这种操作实质是在服务器上进行的,备份的数据文件在服务器上,还原的数据文件也只能在服务器上,这个原则不会变,只是使用了客户端的一个工具来操作这个过程而已. 1.1.备份数据库 备份数据库有两种方式: 第一种是在企业管理器中,利用工具对数据库进行备份,这种备份的文件只会有一个,即以

SQL Server数据库的备份和还

转:http://blog.csdn.net/zwj7612356/article/details/8188025 在sql server数据库中,备份和还原都只能在服务器上进行,备份的数据文件在服务器上,还原的数据文件也只能在服务器上,当在非服务器的机器上启动sql server客户端的时候,也可以通过该客户端来备份和还原数据库,但是这种操作实质是在服务器上进行的,备份的数据文件在服务器上,还原的数据文件也只能在服务器上,这个原则不会变,只是使用了客户端的一个工具来操作这个过程而已. 1.1.