对于用存储过程来分离数据库,如果发现无法终止用户链接,可以使用ALTER DATABASE命令,并利用一个能够中断已存在链接的终止选项来把数据库设置为SINGLE_USER模式,设置为SIGLE_USER代码如下:
ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
下面是分离数据库的CMD命令
EXEC sp_detach_db DatabaseName
一旦一个数据库分离成功,从SQL Server角度来看和删除这个数据库没有什么区别。
2. 如何在查询分析器里面写SQL语句来附加数据库
先把你的数据库文件放到Data文件夹中,然后使用一下代码附加
参数
[@dbname =] 'dbname'
要附加到服务器的数据库的名称。该名称必须是唯一的。dbname 的数据类型为 sysname,默认值为 NULL。
[@filename1 =] 'filename_n'
数据库文件的物理名称,包括路径。filename_n 的数据类型为 nvarchar(260),默认值为 NULL
EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\test_data.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf'
EXEC sp_attach_db @dbname = N'Ty20051029101451aaa',
@filename1 = N'd:\5屏幕\Ty20051029101451aaa_data.mdf',
@filename2 = N'd:\5屏幕\Ty20051029101451aaa_log.ldf'
3. sql server 2008 r2 英文版如何分离和附加数据库
<1>
--分离数据库
EXEC sp_detach_db 数据库名;
<2>
右击你建的数据库,选tasks---->deach
分离
4. C#程序怎么跟SQL Server数据库分离和附加
分离数据库是,在sql server management studio 2005中,右键点击你想分离的数据库,“任务”-->“分离”出现对话框后勾选“删除连接”后确定就能成功分离了;
附加数据库:sql server management studio 2005 ,右键点击“数据库”,“附加”,选中你的数据库文件“.mdf”文件,确定就能添加上。
在visual studio 2005中,在“工具”中 选择“连接数据库”,根据向导可连接到数据库。
5. SQL SERVER如何分离和附加数据库
工具/材料
SQL SERVER 2014
- 01
首先我们打开SQL SERVER的管理工具,如下图所示,右键要分离的数据库,选择任务下面的分离选项
- 02
这时SQL SERVER会弹出分离界面,我们勾选下图中的两个复选框,这是为了将使用当前数据库的连接删除掉
- 03
分离完了以后,回到数据库管理的列表界面,你会发现刚才分离的数据库已经没有了
- 04
如果想把分离出的数据库文件重新附加回数据库,则需要右键数据库,选择附加选项,如下图所示
- 05
在弹出的附加界面中,我们点击添加按钮,如下图所示
- 06
然后选择你分离出来的数据库文件,注意一定选择的数据库的主文件,如下图所示
- 07
选择好数据库文件以后,该数据库的所以数据文件和日志文件都加载进来了,如下图所示
- 08
最后,你在刷新一下数据库列表,你就会在列表中重新看到分离出来的数据库了,如下图所示
6. 通过SQL语句使用什么命令创建数据库
CREATE DATABASE 为SQl语句,用于创建数据库。
语法
CREATE DATABASEdatabase_name
[ ON
[ < filespec > [,...n] ]
[,< filegroup > [,...n] ]
]
[ LOG ON { < filespec > [,...n] } ]
[ COLLATEcollation_name]
[ FOR LOAD | FOR ATTACH ]
< filespec > ::=
[ PRIMARY ]
([ NAME=logical_file_name,]
FILENAME='os_file_name'
[,SIZE=size]
[,MAXSIZE={max_size| UNLIMITED } ]
[,FILEGROWTH=growth_increment])[,...n]
< filegroup > ::=
FILEGROUPfilegroup_name< filespec > [,...n]
参数
database_name
新数据库的名称。数据库名称在服务器中必须唯一,并且符合标识符的规则。database_name最多可以包含 128 个字符,除非没有为日志指定逻辑名。如果没有指定日志文件的逻辑名,则 Microsoft® SQL Server™ 会通过向database_name追加后缀来生成逻辑名。该操作要求database_name在 123 个字符之内,以便生成的日志文件逻辑名少于 128 个字符。
ON
指定显式定义用来存储数据库数据部分的磁盘文件(数据文件)。该关键字后跟以逗号分隔的 <filespec> 项列表,<filespec> 项用以定义主文件组的数据文件。主文件组的文件列表后可跟以逗号分隔的 <filegroup> 项列表(可选),<filegroup> 项用以定义用户文件组及其文件。
n
占位符,表示可以为新数据库指定多个文件。
LOG ON
指定显式定义用来存储数据库日志的磁盘文件(日志文件)。该关键字后跟以逗号分隔的 <filespec> 项列表,<filespec> 项用以定义日志文件。如果没有指定 LOG ON,将自动创建一个日志文件,该文件使用系统生成的名称,大小为数据库中所有数据文件总大小的 25%。
FOR LOAD
支持该子句是为了与早期版本的 Microsoft SQL Server 兼容。数据库在打开dbo use only数据库选项的情况下创建,并且将其状态设置为正在装载。SQL Server 7.0 版中不需要该子句,因为 RESTORE 语句可以作为还原操作的一部分重新创建数据库。
FOR ATTACH
指定从现有的一组操作系统文件中附加数据库。必须有指定第一个主文件的 <filespec> 条目。至于其它 <filespec> 条目,只需要与第一次创建数据库或上一次附加数据库时路径不同的文件的那些条目。必须为这些文件指定 <filespec> 条目。
附加的数据库必须使用与 SQL Server 相同的代码页和排序次序创建。应使用sp_attach_db系统存储过程,而不要直接使用 CREATE DATABASE FOR ATTACH。只有必须指定 16 个以上的 <filespec> 项目时,才需要使用 CREATE DATABASE FOR ATTACH。
如果将数据库附加到的服务器不是该数据库从中分离的服务器,并且启用了分离的数据库以进行复制,则应该运行sp_removedbreplication从数据库删除复制。
collation_name
指定数据库的默认排序规则。排序规则名称既可以是 Windows 排序规则名称,也可以是 SQL 排序规则名称。如果没有指定排序规则,则将 SQL Server 实例的默认排序规则指派为数据库的排序规则。
有关 Windows 和 SQL 排序规则名称的更多信息,请参见COLLATE。
PRIMARY
指定关联的 <filespec> 列表定义主文件。主文件组包含所有数据库系统表。还包含所有未指派给用户文件组的对象。主文件组的第一个 <filespec> 条目成为主文件,该文件包含数据库的逻辑起点及其系统表。一个数据库只能有一个主文件。如果没有指定 PRIMARY,那么 CREATE DATABASE 语句中列出的第一个文件将成为主文件。
NAME
为由 <filespec> 定义的文件指定逻辑名称。如果指定了 FOR ATTACH,则不需要指定 NAME 参数。
logical_file_name
用来在创建数据库后执行的 Transact-SQL 语句中引用文件的名称。logical_file_name在数据库中必须唯一,并且符合标识符的规则。该名称可以是字符或 Unicode 常量,也可以是常规标识符或定界标识符。
FILENAME
为 <filespec> 定义的文件指定操作系统文件名。
'os_file_name'
操作系统创建 <filespec> 定义的物理文件时使用的路径名和文件名。os_file_name中的路径必须指定 SQL Server 实例上的目录。os_file_name不能指定压缩文件系统中的目录。
如果文件在原始分区上创建,则os_file_name必须只指定现有原始分区的驱动器字母。每个原始分区上只能创建一个文件。原始分区上的文件不会自动增长;因此,os_file_name指定原始分区时,不需要指定 MAXSIZE 和 FILEGROWTH 参数。
SIZE
指定 <filespec> 中定义的文件的大小。如果主文件的 <filespec> 中没有提供 SIZE 参数,那么 SQL Server 将使用model数据库中的主文件大小。如果次要文件或日志文件的 <filespec> 中没有指定 SIZE 参数,则 SQL Server 将使文件大小为 1 MB。
size
<filespec> 中定义的文件的初始大小。可以使用千字节(KB)、兆字节(MB)、千兆字节 (GB) 或兆兆字节 (TB) 后缀。默认值为 MB。指定一个整数,不要包含小数位。size的最小值为 512 KB。如果没有指定size,则默认值为 1 MB。为主文件指定的大小至少应与model数据库的主文件大小相同。
MAXSIZE
指定 <filespec> 中定义的文件可以增长到的最大大小。
max_size
<filespec> 中定义的文件可以增长到的最大大小。可以使用千字节(KB)、兆字节(MB)、千兆字节 (GB) 或兆兆字节 (TB) 后缀。默认值为 MB。指定一个整数,不要包含小数位。如果没有指定max_size,那么文件将增长到磁盘变满为止
说明在磁盘即将变满时,Microsoft Windows NT® S/B 系统日志会警告 SQL Server系统管理员。
UNLIMITED
指定 <filespec> 中定义的文件将增长到磁盘变满为止。
FILEGROWTH
指定 <filespec> 中定义的文件的增长增量。文件的 FILEGROWTH 设置不能超过 MAXSIZE 设置。
growth_increment
每次需要新的空间时为文件添加的空间大小。指定一个整数,不要包含小数位。0 值表示不增长。该值可以 MB、KB、GB、TB 或百分比 (%) 为单位指定。如果未在数量后面指定 MB、KB 或 %,则默认值为 MB。如果指定 %,则增量大小为发生增长时文件大小的指定百分比。
如果没有指定 FILEGROWTH,则默认值为 10%,最小值为 64 KB。指定的大小舍入为最接近的 64 KB 的倍数。
(6)分离与附加数据库的SQL语句扩展阅读
组成
在正式学习SQL语言之前,首先让我们对SQL语言有一个基本认识,介绍一下SQL语言的组成:
1、一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。
2、一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项。
3、一个表或者是一个基本表或者是一个视图。基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。
4、一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外部存储上一个物理文件对应。
5、用户可以用SQL语句对视图和基本表进行查询等操作。在用户角度来看,视图和基本表是一样的,没有区别,都是关系(表格)。
6、SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,宿主语言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada语言等。SQL用户也能作为独立的用户接口,供交互环境下的终端用户使用。
参考资料来源:网络-SQL数据库
参考资料来源:网络-Create Database
7. 在sql server 2005中,附加和分离数据库,用sql语句怎么写
下面的例子一看就知道了:
eg:
sp_detach_db 'accpEconsole' ---分离accpEconsole数据库
sp_attach_db accpEconsole,'C:\accpEconsole.mdf','C:\accpEconsole_log.LDF' \\附加数据库
backup database master to disk='C:\bea\master'\\备份
restore database accpEconsole from disk='C:\bea\master' \\恢复备份数据库
说明:
在附加数据库时候 后面的两个参数一定要是绝对路径!否则报错!!!!!!!!!