sql数据库开发.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
sql数据库开发.doc

数据开发-经典 1.按姓氏笔画排序: Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as //从少到多 2.数据库加密: select encrypt("原始密码") select pwdencrypt("原始密码") select pwdcompare("原始密码","加密后密码") = 1--相同;否则不相同 encrypt("原始密码") select pwdencrypt("原始密码") select pwdcompare("原始密码","加密后密码") = 1--相同;否则不相同 3.取回表中字段: declare @list varchar(1000), @sql nvarchar(1000) select @list=@list+","+ from sysobjects a,syscolumns b where a.id=b.id and ="表A" set @sql="select "+right(@list,len(@list)-1)+" from 表A" exec (@sql) 4.查看硬盘分区: EXEC master..xp_fixeddrives 5.比较A,B表是否相等: if (select checksum_agg(binary_checksum(*)) from A)    =   (select checksum_agg(binary_checksum(*)) from B) print "相等" else print "不相等" 6.杀掉所有的事件探察器进程: DECLARE hcforeach CURSOR GLOBAL FOR SELECT "kill "+RTRIM(spid) FROM master.dbo.sysprocesses WHERE program_name IN("SQL profiler",N"SQL 事件探查器") EXEC sp_msforeach_worker "?" 7.记录搜索: 开头到N条记录 Select Top N * From 表 N到M条记录(要有主索引ID) Select Top M-N * From 表 Where ID in (Select Top M ID From 表) Order by ID  Desc N到结尾记录 Select Top N * From 表 Order by ID Desc 案例 例如1:一张表有一万多条记录,表的第一个字段 RecID 是自增长字段, 写一个SQL语句, 找出表的第31到第40个记录。 select top 10 recid from A where recid not in(select top 30 recid from A) 分析:如果这样写会产生某些问题,如果recid在表中存在逻辑索引。 select top 10 recid from A where……是从索引中查找,而后面的select top 30 recid from A则在数据表中查找,这样由于索引中的顺序有可能和数据表中的不一致,这样就导致查询到的不是本来的欲得到的数据。 解决方案 1, 用order by select top 30 recid from A order by ricid 如果该字段不是自增长,就会出现问题 2, 在那个子查询中也加条件:select top 30 recid from A where recid>-1 例2:查询表中的最后以条记录,并不知道这个表共有多少数据,以及表结构。 set @s = "select top 1 * from T  where pid not in (select top " + str(@count-1) + " pid from T)" print @s   exec sp_executesql @s 9:获取当前数据库中的所有用户表 select Name from sysobjects where xtype="u" and status>=0 10:获取某一个表的所有字段 select name from syscolumns where id=object_id("表名") select name from syscolumns where id in (select id from sysobjects where type = "u" and name = "表名") 两种方式的效果相同 11:查看与某一个表相关的视图、存储过程、函数 select a.* from sysobjects a, syscomments b where a.

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档