All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
PHP实例:用PHP实现XML备份Mysql数据库_[PHP教程]
SQL Server定时作业的设置方法_[SQL Server教程]
PHP和MySQL基础教程(三)_[PHP教程]
SQL注入漏洞全接触--入门篇_mssql学习_编程技术
windows下Apache2+php4+MySql5集成简明教程_php资料_编程技术
delphi自绘栅格组件(TDrawGrid)使用方法
delphi组件的基本操作
理解学习PHP编码规范之源文件的编码规范_php资料_编程技术
SQL 外链接操作小结 inner join left join right join_[SQL Server教程]
C#中return语句的使用方法
Reading number is top 10 pictures
黑社会大哥相亲
刘亦菲写真集1
大人物的礼物
Absolutely shocked. National geographic 50 animal photographys9
The terra-cotta warriors3
Ashlynn Brooke show proud chest measurement1
Earthquake hedge common sense
A beautiful girl to bud1
史上最大的哺乳动物迁移
2012 national geographic daily picture8
Download software ranking
星际争霸1.08硬盘免安装版
WebService在.NET中的实战应用教学视频 → 第1集
Photoshop 8.0图象编辑软件
Adobe Flash Player(IE) 10.0.32.18 浏览器专用的FLASH插件
Eclipse-CALMSANNY (second edition)
株洲本地在线棋牌游戏
功夫熊猫2(下集)
Eclipse 4.2.1 For Win32
在线棋牌游戏3.05版
Kung fu panda - the secret of the teacher
归海一刀 published in(发表于) 2014/2/1 0:17:02 Edit(编辑)
SQL细节知识积累_[SQL,Server教程]

SQL细节知识积累_[SQL,Server教程]

SQL细节知识积累_[SQL Server教程]

Transact_sql:


TRUNCATE TABLE test //用于删除test表中的数据
CREATE FUNCTION //创建用户自定义函数
ALTER FUNCTION //语句修改
DROP FUNCTION //除去用户定义函数
CREATE UNIQUE CLUSTERED INDEX client_id ON clients(client_id)


sql:
(1). group by ... with cube having sum(number)>=40
下面两语句是为了保持前后兼容
compute
compute by
如果使用COMPUTE BY,则必须也使用ORDER BY子句.
(2). JOIN ON 用法
select book.name,tool.name from book JOIN tool ON (boo.id==tool.id)
INNER JOIN ON (内联接:用于消除与另一个表中的任何不匹配的行)
select book.name,tool.name from book JOIN tool ON (boo.id==tool.id)
LEFT OUTER JOIN ON (左外联接:)
FULL OUTER JOIN (完整外部联接:不管另一个表是否有匹配的值,此运算符都包括两个表中所有行)
CROSS JOIN (交叉连接:显示可能的组合)


(3). 使用@@ERROR全局变量处理错误:
SQL Server的所有错误都存储在系统表master.dbo.sysmessages中.用户定义的消息也可以存储在sysmessages中.如果需要,可以使用RAISERROR语句将这些用户定义的错误返回到一个应用程序.若出现一个错误,则返回一条错误信息.
例子: use test
drop table text1
go
create table text1(c1 int,c2 text)
exec sp_tableoption 'text1','text in row','on'
insert text1 values(1,'This is a text.')
go
select * from text1
go
(4). 检索ntext,text,image
首先看例题: use test
go
create table text1(c1 int,c2 text)
exec sp_tableoption 'text1','text in row','on'
insert text1 values('1','This is a text.')
go
select * from text1
go
有几种方法:
1.在SELECT语句中引用该列
2.使用TEXTTPTR函数
3.使用SUBTRING函数
4.使用PATINDEX函数
例题:
a. exec sp_tableoption 'text1','text in row','off'
declare @ptrval varbinary(16)
select @ptrval=TEXTPTR(c2)
from text1
READTEXT text1.c2 @ptrval 0 7
b. select substring(c2,1,7) as c2
from text1
c. use text
go
select patindex('%a%',c2) as 起始位置
from text1
go
(5).修改ntext,text或image值
可以使用下面的几种方式来修改:
1. 使用数据库API函数;
2. 使用WRITETEXT语句重写该列的整个数据值;
3. 使用UPDATETEXT语句更新ntext,text或image列的特定数据块.
example:
1. use test
go
declare @ptrval varbinary(16)
exec sp_tableoption 'text1','text in row','off'
select @ptrval=textptr(c2) from text1
writetext text1.c2 @ptrval 'This is a modified text.'
go
select * from text1
go
2. use text
go
declare @ptrval varbinary(16)
select @ptrval=textptr(c2)
from text1
updatetext text1.c2 @ptrval NULL 0 'this is an inserted text.'
go
select * from text1
go
(6).显示事务:需要显示的定义事务的启动和结束.它是通过BEGIN TRANSACTION,COMMIT TRANSACTION,COMMIT WORK,ROLLBACK TRANSACTION,ROLLBACK WORK 等Transact-SQL语句来完成的.
1.启动事务使用BEGIN TRANSACTION语句.如果遇到错误,以后的语句能自动回滚.
2.结束事务使用COMMIT TRANSACTION语句.该事务中的所有修改都将永久有效.事务占用的资源被释放.
3.回滚事务使用ROLLBACK TRANSACTION清除自事务的起点或到某个保存点所有数据修改.ROLLBACK不释放由事务控制的资源.
4.保存点使用SAVE TRANSACTION语句.如果有条件地取消事务的一部分,事务可以返回的位置.
example:
use bookdb
go
begin tran MyTran --启动事务
insert into book values(9,'Windows 2000 Professional 看图速成',1,35,'2')
save tran MySave --保存点
delete book where book_id=9 --删除记录
rollback tran MySave --回滚事务
commit tran
go
select * from book
5. 标记事务用WITH MARK选项使事务名置于事务日志中.将数据库还原到早期状态时,可使用标记事务替代日期和时间.
(7).自动提交事务
(8).自定义锁
自定义锁超时:
set lock_timeout 1800
go
declare @timeout int
select @timeout=@@lock_timeout
print @timeout
go
自定义隔离级别:
use bookdb
go
set transaction isolation level serializable
go
begin transaction
select *from book
go
dbcc useroptions--(显示当隔离级别)
go
锁定提示:
use bookdb
go
set transaction isolation level serializable
go
begin transaction
select book_name from book with (nolock)
exec sp_lock --(显示锁定)
go
返回数据库被锁定对象
select object_name(725577623)
go
(9)游标
SQL Server支持四种API服务器游标:
* 静态游标
* 动态游标
* 只进游标
* 键集驱动游标
ROWCOUNT返回上次操作影响的行数.
use bookdb
go
set nocount on
update book set book_name='LINUX教程'
where book_id=20
if @@ROWCOUNT=0
print '没有行被更新!'
go
游标示例:
--声明游标
declare book_cursor cursor
for select *from book
open book_cursor
--提取一行数据
fetch next from book_cursor
close book_cursor
deallocate book_cursor
(10)视图
use bookdb
go
create view dbo.book_total
as
select abo.book.book_name as 书名,
abo.book.price as 价格,
abo.orderform.book_number as 数量,
abo.book.price*abo.orderform.book_number
as 总额
from abo.orderform inner join dbo.book on dbo.orderform.book_id=abo.book.book_id
go
通过视图修改数据
use test
go
/*如果表Table1存在,则删除*/
if exists(select table_name from information_schema.tables
where table_name='Table1')
drop table Table1
go
/*如果视图View1存在,则删除*/
if exists(select table_name from information_schema.views
where table_name='View1')
drop view View1
go
/*创建表Table1*/
create table Table1(column_1 int,column_2 varchar(30))
go
/*创建视图View1*/
create view View1 as select column_2,column_1
from Table1
go
/*通过视图View1插入一笔记录*/
insert into View1 values('Row1',1)
/*检查结果*/
select * from Table1







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.