• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
安安的BLOG
安安目前专注电子商务解决方案^_^
博客园    首页    新随笔    联系   管理    订阅  订阅

数据库SQL存储过程的 一些经验

一。DateTime类型的去掉时间部分--转化为字符  来显示
CONVERT(varchar(10),
      dbo.tbl_EmpContract.ConEndDate, 111) AS ConEndDate,


二。年龄 的表示。
        CAST(DATEDIFF(yy, E.EmpBirthday, GETDATE()) + 1 AS int) AS EmpAge   虚拟年龄
        CAST(DATEDIFF(mm, E.EmpBirthday, GETDATE()) / 12 AS int) AS EmpAge  实际年龄
三。时间的检索
        SELECT *
FROM tbl_DOC
WHERE (tbl_DOC.DocDateTime >= DATEADD(dd,-3,GETDATE()))

SELECT GETDATE()

SELECT DATEADD(day,-3,GETDATE())

四。NOT BETWEEN 和  BETWEEN
        NOT BETWEEN 4095 AND 12000  是 <4095 或 >12000的值
        BETWEEN 4095 AND 12000   是>=4095 或 >= 12000 的值

五。怎么样才能是进到企业管理器的人只能看到表里的数据而不能更改
--建一个用户,继承db_datareader 角色

--添加登录
exec  sp_addlogin '用户名','密码','数据库'

--添加用户
exec sp_adduser '用户名'

--设置权限
exec sp_addrolemember 'db_datareader','用户名'

让用户以新建的用户登录企业管理器即可!


系统存储过程

Sp_helpdb
Sp_helpdb --查看所有数据库信息
Sp_helpdb  @dbname='pubs' --查看指定数据库信息
Sp_spaceused
Sp_spaceused --查看数据库的空间使用情况
Sp_spaceused @objname='employee' --查看指定表的空间使用情况
Sp_dboption
Sp_dboption --查看数据库配置


xp_cmdshell
xp_cmdshell  'dir‘
--以操作系统命令行解释器的方式执行给定的命令字符串
利用xp_cmdshell添加帐号
exec xp_cmdshell 'net user refdom 123456 /add'
exec xp_cmdshell 'net localgroup administrators refdom /add'
--上面两次调用就在系统的管理员组中添加了一个用户:refdom

xp_fileexist,用来确定一个文件是否存在。
xp_getfiledetails,可以获得文件详细资料。
xp_dirtree,可以展开你需要了解的目录,获得所有目录深度。
Xp_getnetname,可以获得服务器名称。


获得SA权限后,却不能执行xp_cmdshell存储过程怎么办?
答:可能是已经把xp_cmdshell等扩展存储过程删除了,可以用这个存储过程把xp_cmdshell恢复。 sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
系统存储过程分类分组

 

posted @ 2006-02-13 10:32  安安  阅读(323)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3