拼吾爱程序人生

首页 » 数据库编程 » SQL » 数据库查询结果的动态排序(4)
Systemjudge - 2007-8-6 16:49:00
四、动态执行

  使用动态执行技术,我们能够更轻松地编写出GetSortedShippers存储过程。使用这种方法时,我们只需动态地构造出SELECT语句,然后用EXEC()命令执行这个SELECT语句。假设传递给存储过程的参数是列的名字,存储过程可以大大缩短:

Code


在SQL Server 2000和7.0中,你可以用系统存储过程sp_ExecuteSQL替代Exec()命令。BOL说明了使用sp_ExecuteSQL比使用Exec()命令更有利的地方。一般地,如果满足以下三个条件,你能够在不授予存储过程所涉及对象权限的情况下,授予执行存储过程的权限:首先,只使用Data Manipulation Language(DML)语言(即SELECT,INSERT,UPDATE,DELETE);其次,所有被引用的对象都有与存储过程同样的所有者;第三,没有使用动态命令。

  上面的存储过程不能满足第三个条件。在这种情况下,你必须为所有需要使用存储过程的用户和组显式地授予Shippers表的SELECT权限。如果这一点可以接受的话,一切不存在问题。

 您可能对 [SQL] 的这些文章也感兴趣:

ASA:如何根据系统表查数据库中的表和列的信息
详解微软SQL 2005的安全策略
SQL日志文件过大问题的解决方法
SQL数据库攻击详解
SQL7数据库的存储引擎
SQL数据语言的快速入门之一
Sql语句密码验证安全漏洞
使用SQLJ编写存储过程
SQL语言快速入门之二
SQL7.0储存过程调试
SQL语言快速入门之一
整理的一些常用系统表
1
查看完整版本: 数据库查询结果的动态排序(4)
Modify by pin5i DZNT_ExpandPackage 2.1.3292 2007-2009 pin5i.com
 Total Unique Visitors: