--创建数据库
create database 数据库名
on primary
(
name='数据库名_data', filename='数据库储存路径',
size=数据库初始大小(MB), maxsize=数据库增长的最大值(MB),
filegrowth=数据库文件的增长率,(%)
)
log on
(
--日志文件 name='日志文件名_log',
fileName='日志文件存储路径',
size='日志文件大小',
fileGrowth='日志文件增长率'
)
--创建表
create table 表名
(
id int primary key identity(1,1) not null, --设置 Id 为主键 (primary key 标识列为inentity(1,1))
accp date default(getdate()), --设置默认日期 default(getdate())为当前
pid int foreign key references 表名(pid) --设pid 为某张表的外键 (foreign key references 表(pid))
)
--向表中插入数据
insert into 表名 values('插入的列数据'……)
--向表中插入多条数据
insert into 表名 (列名……)
serect 列名值…… union --插入最后一个不用union
--查询表
select 列名…… from 表名 where (查询条件)
select * from 表名
--删除表
delete 表名 --删除表数据
drop 表名 --删除整个表以及数据
--修改表
update 表名 set 修改 where 修改条件
--创建存储过程
create proc usp_存储过程名
declare @变量名 变量数据类型(int……)[out/put](输入输出)
as
sql语句块
--事务处理
begin transaction --开启事务
rollback transaction --回滚事务
Commit Transaction --提交事务
简单的实例 :
例如银行储户 A 要给银行储户 B 转账
储户表结构: 储户帐号(ID) 储户身份证号(IDCard) 现有余额(balance)
则: A: 01 A身份证号 1000
B: 02 B身份证号 2000
在 A 给 B 转账的同时 两个人的账户余额,都要进行响应的改变,如果出现A帐号转账金额大于余额
,也就是余额不足的情况下,转账交易则不成立,假设转账金额为300元
这里一般结合存储过程来用:
create proc usp_zhuanzhang
declare @money int=300 --转账金额参数为300元
as
begin transaction --开启事务
update 表A set balance=balance-@money where ID=01
update 表B set balance=balance+@money where ID=02
if @@Error<> 0 goto xx --如果其中出现错误, 就到 命名为 xx 的地方处理
commit transaction --否则就提交
xx:
rollback transaction --出现错误,就回滚 (错误原因有: A账户的余额不足,当余额不足,交易不成立)
SQL Server中的全局变量
@@Error 最后一个T-sql错误的错误号
@@Identity 最后一次插入的标识值
@@Language 当前使用的语言名称
@@Max_Connections 可以创建的同时连接的最大数目
@@Rowcount 受上一个SQL语句影响的行数
@@ServerName 本地服务器名称
@@ServiceName 该计算机上的Sql服务名称
@@TimeTicks 当前计算机上每刻度微妙数
@@TranScount 当前连接打开的事务数
@@Version SQL Server的版本信息