sql server 基础笔记文档格式.docx
《sql server 基础笔记文档格式.docx》由会员分享,可在线阅读,更多相关《sql server 基础笔记文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
while@i<
20
set@i=@i+1
if@i<
=19
continue
print@i
if@i=19
break
----try...catch用法
begintry
select1/0
endtry
begincatch
print'
打印错误'
endcatch
---raiserror的用法
raiserror('
生成一个错误消息'
11,1)
begincatch
selecterror_message()as错误消息,
error_severity()as严重级别,
error_state()asstate;
---使用sp_addmessage存储过程添加自定义错误
execsp_addmessage50001,15,N'
newuserdefinederrormessage!
'
us_english
新增用户自定义错误消息!
execsp_dropmessage50001,'
all'
---使用sp_altermessage存储过程修改用户定义错误消息
execsp_altermessage50001,'
with_log'
true'
---2005查看数据库信息
select*fromsys.databases
execsp_helpdb
--查看数据库空间使用情况
execsp_spaceused
--创建数据库时指定数据文件
createdatabasedb
on
primary(name=db,
filename='
C:
\programfiles\mircosoftSQLserver\mssql10.mssqlserver\mssql\data\db.mdf'
size=100MB
maxsize=200
filegrowth=20)
--解释下上面的参数:
--primary关键字,指定关联<
文件定义>
列表用于定义主要数据文件,一个数据库只能有一个主文件,如果没有指定primary,那么createdatabase语句中列出的第一个文件将成为主文件。
--name关键字,用于指定数据文件的逻辑名称
--filename关键字,指定数据文件的操作系统文件名。
其后面的参数是创建数据文件时定义的物理文件的路径名和文件名。
--size关键字,指定数据文件的大小。
--maxsize关键字,指定数据文件可以增长到的最大大小。
--unlimitted关键字,上面的例子中省略掉了。
若指定了,则代表指定定义的数据文件将增长到磁盘变满为止。
--filegrowth关键字,指定数据文件的增长增量,其值不能超过maxsize设置。
0表示不增长。
,默认值为MB。
如果指定为%,则增量大小为发生时文件大小的指定百分比,如果没有指定,默认值为10%。
--在创建数据库时指定文件组
primary(name=db1,
\programfiles\mircosoftSQLserver\mssql10.mssqlserver\mssql\data\db1.mdf'
filegrowth=20),
filegroupfilegroup1
(name=db2,
\programfiles\mircosoftSQLserver\mssql10.mssqlserver\mssql\data\db2.mdf'
--创建数据库时指定事务日志文件
logon(
name=dblog,
\programfiles\mircosoftSQLserver\mssql10.mssqlserver\mssql\data\db_log.ldf'
size=10MB
maxsize=20
filegrowth=2)
--获取约束信息
select*frominformation_schema.constraint_column_usage---可以获取指定数据库中的所有约束的信息以及约束与列的对应关系
select*frominformation_schema.constraint_table_usage---查询结果中只包含表和约束的对应关系,并没有约束对应的列信息
select*frominformation_schema.table_constraints---查询结果中只包含表和约束的对应关系,并没有约束对应的列信息
select*frominformation_schema.key_column_usage---可以获取指定数据库中的所有键约束的列信息,包括主键约束中的主键列,唯一约束中的唯一键列和外键约束中的引用列
select*fromsys.key_constraints----获取约束信息
select*fromsys.foreign_keys--获取表中的外键约束
select*fromsys.foreign_key_columns--获取外键约束的列信息
select*frominformation_schema.referential_constraints--获取外键约束信息
select*frominformation_schema.check_constraints--获取检查约束信息
---创建主键约束,唯一约束,检查约束
createtabletest
(
idint,
testnamevarchar(50),
sexbit,
classvarchar(50),
scorefloatdefault(0)
constraintpk_testprimarykey/*这里可以指定是创建聚集或非聚集索引clustered|nonclustered可选项*/(id)
constraintix_testunque(testname)
constraintck_testcheck/*这里可以使用notforreplication可选项,用于指定当从其他表中复制数据时,不检查约束条件*/(score>
=0)
go
altertabletb
addconstraintpk_tbprimarykeynonclustered(id)
addconstraintck_sexcheck(sex='
男'
orsex='
女'
---创建和使用默认约束
addconstraintde_testdefault'
test'
fortest---在表tb的列test的默认约束为'
--创建和使用外键约束
addconstraintfk_tb_tb1foreignkey(id)
referencestb1(id)
--使用dbcccheckident检查和设置表的标识值
createtabletb
idintprimarykeyidentity,
namevarchar(50)
insertintotb
select'
a'
unionall
b'
unionall
c'
d'
dbcccheckident(tb,noreseed)
deletefromtbwhereid>
2
--删除记录后,表tb只剩下两条记录了,但是此时表tb的标识值仍为4,可以用下面的语句重置标识值为2
dbcccheckident(tb,reseed,2)
/*检查标识信息:
当前标识值'
4'
,当前列值'
。
DBCC执行完毕。
如果DBCC输出了错误信息,请与系统管理员联系。
(2行受影响)
检查标识信息:
2'
*/
droptabletb
---视图withencryption的用法
createview员工信息简历表
withencryption----这样就创建了加密视图
as
select
e.emp_name,e.sex,e.title,d.dep_name
from
employeeseinnerjoindepartmentsd
on
e.dep_id=d.dep_id
---获取表和视图信息
select*frominformation_shcema.tables---查看当前数据库中当前用户有权限查看的所有表和视图信息
---获取视图信息
select*frominformation_schema.views
---获取列信息
select*frominformation_schema.columns
如果需要查看指定表或视图的列情况,可以使用下面的语句。
select
*
from
information_schema.columns
where
table_catalog='
数据库名'
and
table_name='
表名'
---获取视图中列的信息
select*frominformation_schema.view_column_usage
select*fromsys.columns
将sys.columns与系统视图sys.objects和sys.types关联,获得列的一些详细信息,例如
select
o.nameas表名,
c.nameas列名,
t.nameas数据类型,
c.max_lengthas长度,
c.precisionas精度,
c.scaleas小数位数,
casec.is_nullablewhen1then'
是'
else'
否'
endas是否允许空,
casec.is_identitywhen1then'
endas标识列,
sys.columnscinnerjoinsys.objectso
o.object_id=c.object_id
innerjoin
sys.typest
c.system_type_id=t.system_type_id
o.name='
andt.name<
>
sysname'
orderby
c.column_id
--获取视图中包含表的信息
select*frominformation_schema.view_table_usage
--获取所有数据库对象的信息
select*fromsys.objects
--绑定规则
execsp_bindrule'
规则名'
'
对象名'
例如
sexrule'
employees.sex'
--解除绑定规则
execsp_unbindrule'
--删除规则
在删除规则前,需要调用sp_unbindrule存储过程解除该规则的绑定,例如
droprulesexrule
--查看表的索引信息
execsp_helpindextb
--结合sys.indexes和sys.index_columns,sys.objects,sys.columns查询索引所属的表或视图的信息
i.nameas索引名,
i.type_descas类型描述,
is_primary_keyas主键约束,
is_unique_constraintas唯一约束,
is_disableas禁用,
sys.objectsoinnerjoinsys.indexes
i.object_id=o.object_id
innerjoin
sys.index_columnsic
ic.index_id=i.index_idandic.object_id=i.object_id
sys.columnsc
ic.columns_id=c.columns_idandic_object_id=c.object_id
--查询索引的键和列信息
i.nameas索引名,
c.nameas字段编号,
sysindexesiinnerjoinsysobjectso
i.id=o.id
sysindexkesk
o.id=k.idandi.indid=k.indid
syscolumnsc
c.id=i.idandk.colid=c.colid
o.name='