巧用SET选项设置SQL Server客户端配置
2009-05-09 10:28:38 来源:WEB开发网4、如果一个过程A调用了另外一个过程B,而现在如果过程A中利用SET选项更改了某些参数,那么这个更改会否影响到过程B的运行环境将呢?答案是不确定。这主要是看过程B中有没有对这个SET选型进行重新设置。也就是说,除非在过程B中进行了显示的重置,否则来自所有更高级别的代码中的SET选项值在低级别的代码中有效。简单的说,过程A调用了过程B,则过程A中的SET选项值在过程B中同样有效。除非过程B显示的对这SET选型进行了重置。其实这个原理很简单,就好象在过程A中定义了一个变量,然后调用了过程B。此时过程B使用需要用到这个过程A中定义的变量时,他的值就是在过程A中修改后的值。当然在过程B中也可以对这个过程A中定义的变量值进行修改,如可以对这个变量的值进行重置。不过当这个过程A结束时,这个变量就会失效了。
可见,这个SET选项跟程序开发过程中的局部变量与全局变量非常的相似。数据库管理员在使用这些SET选项的时候,需要注意一个基本的原则,即其作用范围往往只在当前的会话或者过程中有效。为此数据库管理员在启用某个SET选项的时候,就需要考虑一个问题,即这个改变只是针对某个特定的会话或者某个特定的作业,还是针对全部用户?如果是前者的话,则可以通过SET选项来设置。但是如果是后者的话,那么最好通过服务器设置来改变。否则的话,要为每个会话或者每个作业设置SET选型那工作量就比较大了。笔者以前学过程序开发,为此来学些这个SET选型的时候比较喜欢利用全局变量与局部变量的关系来了解这个功能。全局变量即在整个运行环境中都有效;而局部变量则只在某个作用范围内有效。就是如此简单而已。掌握了这个SET选项的作用范围之后,就可以帮助数据库管理员来确定到底是否该采用SET选项、以及在什么时候采用这个SET选项,来提高客户端连接以及用户运行环境的灵活性。
更多精彩
赞助商链接