网络编程
位置:首页>> 网络编程>> 数据库>> SQL Server 2000如何设置会话上下文信息?

SQL Server 2000如何设置会话上下文信息?

  发布时间:2010-05-18 18:33:00 

标签:SQL,Server,2000,设置,数据库

Microsoft SQL Server 2000的会话上下文信息使应用程序得以设置二进制值,以便在同一会话或连接上运行的多个批处理、存储过程、触发器或用户定义函数中加以引用,但我在使用中感到不是很顺利,请问还应注意一些什么问题吗?

Microsoft SQL Server 2000引入了编程能力,在会话上下文信息中,我们可使用新的 SET CONTEXT_INFO 语句设置会话上下文,然后从 master.dbo.sysprocesses 表的新 context_info 列中检索上下文字符串。SET CONTEXT_INFO 语句支持:

1、最多 128 字节的常量,可以是二进制或是可隐性转换为二进制的数据类型。

2、varbinary(128) 或 binary(128) 变量的名称。

注意,不能在用户定义函数中指定 SET CONTEXT_INFO。因为用来存储信息的 sysprocesses 表不允许空值,所以不能给 SET CONTEXT_INFO 提供空值。

我们要获得当前连接的当前会话上下文,可从 SQL Server 进程 ID (SPID) 与连接 SPID 相等的 master.dbo.sysprocesses 行中选择 context_info 列,当前连接的 SPID 由 @@SPID 函数返回:
SELECT context_info
FROM master.dbo.sysprocesses
WHERE spid = @@SPID

如果我们还没有对当前连接执行 SET CONTEXT_INFO, context_info 列中的值将会初始化为 128 字节的二进制零;如果已执行了 SET CONTEXT_INFO,context_info 列[varbinary(128) 列]将包含由当前连接最后执行的 SET CONTEXT_INFO 设置的值。
下面看看具体的会话上下文信息示例:
SET CONTEXT_INFO 0x1256698456
------ 开始设置上下文信息------
GO
sp_who
GO
USE Northwind
GO
SELECT CustomerID
FROM Customers
WHERE City = 'London'
GO
SELECT context_info
------ 在选择上下文信息之前设置批处理------
FROM master.dbo.sysprocesses
WHERE spid = @@spid
GO

    注意以上的SET CONTEXT_INFO 不支持引用常量或变量名以外的表达式,象函数什么的。如果需要将上下文信息设置为函数调用结果,则须先在 binary 或 varbinary 变量中放置函数调用结果才可:
    DECLARE @BinVar varbinary(128)
SET @BinVar = CAST( REPLICATE( 0x20, 128 ) AS varbinary(128) )

 

0
投稿

猜你喜欢

  • ORA-00600:internal error code,arguments:[num],[?],[?],[?],[?]产生原因:这种错误
  • 无意中看到一位学员的屏保,感觉挺有意思的,就把它实现了下来效果如下:<!DOCTYPE html PUBLIC "-//W3
  • 以国内最流行ASP为例,我不知道有多少人会在写代码时想到“容错”这个概念,实际上当我遇到这种事时,也是不了了之。为什么呢,想想最初的意思是认
  • 用IIS调试ASP程序时,有的页面可以显示出错行及出错原因,虽然原因不是很具体但足以引导调试程序,但有些时候就直接出现:HTTP 500 -
  • 由于javascript是一种无类型语言,所以一个数组的元素可以具有任意的数据类型,同一个数组的不同元素可以具有不同的类型,数组的元素设置可
  •   国外纷纷传言IE8将是Internet Explorer的最后一个版本,这个猜测来源于Microsoft的CEO Steve
  • 这是为了实现一个效果,而提前作的测试代码!看起来很简单的一个东西,到这会,大约四个小时过去了。不知道是IE6的BUG;还是我自已的BUG!有
  • 我开发过几个采集程序,也研究过很多采集程序代码,所以对采集程序的原理还算是稍微有些了解。先说一下采集原理:采集程序的主要步骤如下: 一、获取
  • 今天的这篇文章是讲XHTML中的细节部分的,这篇续述的主题就是ID与CLASS怎么用,在标题中有提及使用原则与技巧,这里的使用原则与技巧是我
  • 一旦你已经为MySQL实例管理器设置了一个密码文件并且IM正在运行,你可以连接它。你可以使用mysql客户端工具通过标准MySQL API来
  • MapPathMapPath 方法将指定的相对或虚拟路径映射到服务器上相应的物理目录上。语法Server.MapPath( Path ) 参
  • asp上传的时候出现这种 错误:Server 对象 错误 'ASP 0177 800401f3'Server.CreateO
  • 假设要生成一千万个随机数,常规的做法如下:var numbers = [];for (var&nbs
  • 平面设计 常用尺寸 三折页广告 标准尺寸: (A4)210mm x 285mm普通宣传册 标准尺寸: (A4)210mm x 285mm文件
  • asp vbs Cache缓存类属性valid,是否可用,取值前判断属性name,cache名,新建对象后赋值方法add(值,到期时间),设
  • 在MySQL中,一个字符串中,如果某个序列具有特殊的含义,则这个序列以反斜线符号(‘\’)开头,称为转义字符。常见的转义字符:\0 ASCI
  • SQL触发器实例1 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一
  • 这篇文章主要介绍了在SQL Server中处理空值时所涉及的3个问题:计数、使用空表值以及外键处理。用COUNT(*)处理空值大多数集合函数
  • Cookie是一种小型文本文件,存储在用户计算机中,用于跟踪用户在互联网上的活动。Cookie通常由网站创建,以便记住用户的偏好和登录状态,
  • 如何做一个密码“生成器”?randompassword.asp<% Dim i, intNum,&nbs
手机版 网络编程 asp之家 www.aspxhome.com