SQL快速操作
数据库是我们在开发时的一个工具,所以我们只是希望通过数据库来为我们开发提供便利。微软在给我们提供的SQL数据库就专门设置了两种方法来使用数据库,一种是通过代码形式实现,一种则是通过可视化方式。由于代码方式格式具有统一性,所以在使用数据库的时候,可能会偶尔不记得具体的创建方法,下面我就把一些常用的数据库的操作总结出来,以供以后开发使用。
数据库 'XXXX' 已打开,并且一次只能有一个用户访问。 (Microsoft SQL Server,错误: 924)
USE master;
GO
DECLARE @SQL VARCHAR(MAX);
SET @SQL=''
SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID)
FROM master..sysprocesses
WHERE dbid=DB_ID('NBSFJ_XXBS');
EXEC(@SQL);
GO
ALTER DATABASE NBSFJ_XXBS SET MULTI_USER;
- 1. 查看数据库信息
Sp_helpdb mydb
- 2. 修改数据名
Alter database mydb modify name=youdb
- 3. 存储过程修改数据名
Exec sp_dboption ‘youdb’,’single’,true
Exec sp_renamedb ‘youdb’,’mydb’
Exec sp_dboption ‘mydb’,’single’,false
- 4. 修改数据库文件大小
alter database MySql
modify file
(
name=MySql_log,//要修改的数据库下的文件名//
size=6MB,
filegrowth=20%
)
- 往数据库中添加文件
Alter database testDB
Add file
(
Name=test_dat,
Filename=’h:\data’,
Size=10mb,
Filegrowth=10%
)
- 6. 删除数据库的方法
Drop database mydb
- 7. 从SQL Server中删除数据库,但保持其数据和事务日志文件
Exec sp_detach_db mydb
- 8. 附加数据库,
Exec sp_attach_db MyDB,’F:\data\mydb_dat.mdf’
9.备份数据库
Backup database mydb to disk=’f:\data\database_bak.dat’ with name=’backup’
或:
EXEC sp_addumpdevice 'disk', 'yourdbs', 'F:\data\20100823.dat'
BACKUP DATABASE yourdb TO yourdbs
exec sp_dropdevice 'yourdbs'
或:
EXEC sp_addumpdevice 'disk', 'AdvWorksLog', 'F:\data\AdvWorksLog.bak'
BACKUP LOG AdventureWorks TO AdvWorksLog
exec sp_dropdevice AdvWorksLog
10.还原数据库:
restore database mydb from disk ='f:\data\database_bak.dat' with replace
11.数据库快照:
create database mydb0703
on
(
name='mydb_dat',
filename='f:\data\mydb0703.mdf'
)
as snapshot of mydb
12.恢复数据快照:
restore database mydb from database_snapshot='mydb0703'
13.创建带有次文件数据快照
create database mydb07031
on
(
name='test',
filename='f:\mydb07031.mdf'
),
(
name='ddd',
filename='f:\ddd.ndf'
)
as snapshot of test
二、创建表:
Create table MyTable
(
Id int not null,
Name varchar not null
)
删除表、drop table MyTable
更改表名:exec sp_rename MyTable YouTable
添加列:alter table MyTable
Add num int not null,
Score int ,
删除列:alter table MyTable
Drop column name,
修改列:alter table MyTable
Alter column num int null,
查询表内容:select * from MyTable
创建数据库(只有一个主文件和一个日志文件)
create database MyDB
on
(
name=mydb_dat,
filename='f:\data\mydb_dat.mdf',
size=5MB,
maxsize=20mb,
filegrowth=5%
)
log on
(
name=mydb_log,
filename='f:\data\mydb_log.ldf',
size=5MB,
maxsize=20mb,
filegrowth=5%
)
在同一个文件组中,创建多个文件放置在不同的硬盘上
create database MyDB
on primary
(
name=mydb_dat,
filename='f:\data\mydb_dat.mdf',
size=6MB,
maxsize=20mb,
filegrowth=5%
),
(
name=dbfg_dat1,
filename='d:\data\mydb_dat1.ndf',
size=5mb,
maxsize=20mb,
filegrowth=5%
),
(
name=dbfg_dat2,
filename='e:\data\mydb_dat2.ndf',
size=5mb,
maxsize=20mb,
filegrowth=1mb
)
log on
(
name=mydb_log,
filename='f:\data\mydb_log.ldf',
size=5MB,
maxsize=20mb,
filegrowth=5%
)
创建不同的分组,
create database MyDB
on primary
(
name=mydb_dat,
filename='f:\data\mydb_dat.mdf',
size=6MB,
maxsize=20mb,
filegrowth=5%
),
filegroup dbfg
(
name=dbfg_dat1,
filename='d:\data\mydb_dat1.ndf',
size=5mb,
maxsize=20mb,
filegrowth=5%
),
(
name=dbfg_dat2,
filename='e:\data\mydb_dat2.ndf',
size=5mb,
maxsize=20mb,
filegrowth=1mb
)
log on
(
name=mydb_log,
filename='f:\data\mydb_log.ldf',
size=5MB,
maxsize=20mb,
filegrowth=5%
)