sql server创建备份插入删除等

test代表数据库名

创建数据库(简单)

CREATE DATABASE test 

创建数据库(指定参数)

exists 存在 的意思

use master
go
--判断master下面的sysdatabases表里面有没有这个数据库,如果没有就执行下面的语句
if not exists (select * from sysdatabases where name ='test') 
create database test  --数据库名称
on primary --主文件名
(
  name='test_data', --逻辑文件名
  filename='d:\sqldata\test_data.mdf', --mdf放的磁盘位置
  size=5mb,  --初始大小
  --maxsize=100mb,  --限制增长为100m
  filegrowth=15%  --数据库增长率 结尾不加逗号
)

log on
(
 name='test_log', --日志的逻辑文件名
 filename='d:\sqldata\test_log.ldf',  --ldf放的磁盘位置
 size=1mb,  --初始大小
 filegrowth=0  --不增长 结尾不加逗号
)
go

删除数据库,删除多个逗号隔开

DROP DATABASE test

备份语句

backup database test to disk ='d:\sqldata\test.bak' 

查询有哪些数据库

use master
go
select * from sysdatabases 
go

查询test数据库下有哪些表和存储过程

use test
go
select * from sysobjects
go

存储过程介绍

sp 开头的代表系统存储过程
exec sp_databases  --列出当前系统的数据库
exec sp_renamedb 'oldtest','newtest'  --修改数据名称
exec sp_helpdb test  --查询数据库文件大小和路径
exec sys.sp_detach_db dbname --分离数据库
exec sp_attach_test, 'd:\sqldata\test.mdf','d:\sqldata\test.ldf' --附加数据库
use test   --指向对应的数据库
exec sp_help  test_table  --列出test_table表的信息 需要指向对应的数据库
xp开头为扩展存储过程
use master
go
exec sp_configure 'show advanced option',1  --启用xp_cmdshell高级配置权限
go
reconfigure  --重新配置
go
exec sp_configure 'xp_cmdshell',1  --打开xp_cmdshell,可以调用sql系统外的功能
go
reconfigure
go

使用xp_cmdshell在d盘创建myfile文件夹,调用的cmd命令

exec xp_cmdshell 'mkdir d:\\myfile',no_output --[no_output]是否输出返回值
go

创建数据库表

USE tset
GO

CREATE table test表  --创建表
(lie int not null  primary key,   --创建列名+列名类型+可否为空+主键,后两项可以不填写,逗号结尾
ming varchar(300) null
)

数据库用脚本还原bak文件

RESTORE FILELISTONLY from disk='E:\test.bak'/*查询备份数据的逻辑名称*/
restore database testname/*还原后的数据库名称*/
from disk='E:\test.bak'/*备份文件路径*/

with move 'test_Data'/*备份文件的数据逻辑名称*/
to 'E:\sqldata\test.mdf',/*还原数据文件存放位置*/

move 'test_Log'/*备份文件的日志逻辑名称*/
to 'E:\sqldata\test.LDF'/*还原数据文件日志存放位置*/
go

判断数据库 test 存在 执行创建表 如果不存在创建数据库

use master
go
IF EXISTS(select 1 from sysdatabases where name = 'test') 
	begin
	print('数据库存在,创建表test_table1')
	use test --需要指向数据库名
	CREATE TABLE test_table1(id int primary key,name varchar(10)) 
	end
else
	begin
	print('数据库不存在,创建数据库test')
	create database test
	end
go

改自增长量语句

--Trace为数据库名称   db1为逻辑文件名称
USE [master]
GO
ALTER DATABASE [Trace] MODIFY FILE ( NAME = N'db1', FILEGROWTH = 30%)
GO

备份数据库里面是所有账套

--备份数据库里面是所有账套
DECLARE @name VARCHAR ( 50 ) -- database name 
DECLARE @path VARCHAR ( 256 ) -- path for backup files 
DECLARE @fileName VARCHAR ( 256 ) -- filename for backup 
DECLARE @fileDate VARCHAR ( 20 ) -- used for file name

SET @path = 'D:\data\' 

SELECT @fileDate = replace(replace(replace(replace(CONVERT(char(16), getdate(), 120 ),'-',''),'
',''),':',''),' ','') 

DECLARE db_cursor CURSOR FOR 
SELECT name 
FROM master.dbo.sysdatabases 
WHERE name NOT IN ( 'master' , 'model' , 'msdb' , 'tempdb' ) 

OPEN db_cursor 
FETCH NEXT FROM db_cursor INTO @name 

WHILE @@FETCH_STATUS = 0 
BEGIN 
SET @fileName = @path + @name + '.bak' 
BACKUP DATABASE @name TO DISK = @fileName 

FETCH NEXT FROM db_cursor INTO @name 
END 

CLOSE db_cursor 
DEALLOCATE db_cursor

有ndf的数据还原脚本

RESTORE DATABASE abc123 FROM  DISK =  'I:\123\DataBase\data.bak' WITH  FILE = 1,  
MOVE N'Data' TO  'I:\123\DataBase\abc123_1.mdf', 
MOVE N'Log' TO  'I:\123\DataBase\abc123_2.ldf', 
MOVE N'ndf' TO  'I:\123\DataBase\abc123_0001.ndf',  NOUNLOAD ,  STATS = 1,  RECOVERY   ;

判断表下面有没有字段,然后执行脚本

use master
IF  EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID('table') AND name='ziduan')  --判断是否有table表和字段ziduan,有就把字段默认值改为空
BEGIN
alter table master.[dbo].[table] alter column [ziduan] [varchar](20)  NULL   --ziduan默认值修改为空
END
go

方法二

IF NOT EXISTS(select * from syscolumns where id=object_id('table') and name='ziduan') 

BEGIN
ALTER TABLE test..[table] --test为数据库名
		ADD ziduan VARCHAR(10) NULL DEFAULT('0')
END
GO

插入语句

insert into 表名(字段1,字段2) values('值1','值2'); 

SQL修改字段长度

语法:

alter table <表名> alter column <字段名> 新类型名(长度)

例如:有名table1,字段名F1,原来F1为varchar(3),现在要改为varchar(10),则可以这么写:

alter table table1 alter column F1 varchar(10)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值