Transact-SQL中游标名的作用域_MySQL
Microsoft SQL Server 2000支持关键字GLOBAL和LOCAL用于DECLARE CURSOR 语句中游标名作用域的定义。GLOBAL指定游标名在一个连接中是全局的。LOCAL指定游标名在存储过程,触发器,包含DECLARE CURSOR的批处理语句中是局部的。
Microsoft SQL Server 7.0版本以前,在一个连接中,游标名都是全局的。你必须先执行一个用于创建游标的存储过程,然后再执行另外一个从该游标中读取记录的存储过程。如:
USE pubs
GO
CREATE PROCEDURE OpenCrsr AS
DECLARE SampleCrsr CURSOR FOR
SELECT au_lname
FROM authors
WHERE au_lname LIKE 'S%'
OPEN SampleCrsr
GO
CREATE PROCEDURE ReadCrsr AS
FETCH NEXT FROM SampleCrsr
WHILE (@@FETCH_STATUS -1)
BEGIN
FETCH NEXT FROM SampleCrsr
END
GO
EXEC OpenCrsr /* 声明并打开游标SampleCrsr. */
GO
EXEC ReadCrsr /* 从游标SampleCrsr中读取记录. */
GO
CLOSE SampleCrsr
GO
DEALLOCATE SampleCrsr
GO
局部游标在存储过程和触发器中对游标起着重要的保护作用。全局游标能在定义它们的存储过程或触发器外被访问。因此,它们可能在不经意的时候,在存储过程和触发器外被改变。局部游标显得更安全,因为它们不会在存储过程和触发器外被改变,除非特地的通过输出游标参数被传递给调用者。
因为全局游标可以在存储过程和触发器以外被引用,所以它们可能对其他语句有不可预期的影响。例如:一个存储过程创建一个全局游标xyz,过程运行结束后游标xyz仍然处于打开状态,如果程序其他部分又想声明一个全局游标并命名为xyz,这时,就会发生一个重复定义的错误。
全局和局部游标具有不同的命名空间,所以,在同一时间可以出现两个具有同样名字的全局和局部游标。Transact-SQL语法支持游标参数,同样也支持使用GLOBAL标识游标的作用域。如果一个游标名同时表示全局游标和局部游标,在没有指定为GLOBAL时,此游标名将引用局部游标。
数据库选项default to local cursor控制由未指定GLOBAL和LOCAL选项的DECLARE CURSOR语句创建的游标的默认作用域。如果default to local cursor 选项为真,则为局部游标,反之为全局。SQL Server 2000中,default to local cursors 选项默认为false,用于保持与先前版本一致。
声明并且打开局部游标的存储过程,可以将这些游标传出给调用它的存储过程,触发器和批处理语句。这可以通过一个定义为输出参数的CURSOR VARYING 数据类型实现。当存储过程执行结束时,游标必须打开,用以通过输出参数返回。我们可以用一个定义为CURSOR类型的局部变量引用它。
USE pubs
GO
/* Create a procedure with a cursor output parameter. */
CREATE PROCEDURE OpenCrsr @OutCrsr CURSOR VARYING OUTPUT AS
SET @OutCrsr = CURSOR FOR
SELECT au_lname
FROM authors
WHERE au_lname LIKE 'S%'
OPEN @OutCrsr
GO
/* 声明局部游标. */
DECLARE @CrsrVar CURSOR
/* 将先前的游标赋给局部变量. */
EXEC OpenCrsr @OutCrsr = @CrsrVar OUTPUT
/* 利用@CrsrVar去读取记录. */
FETCH NEXT FROM @CrsrVar
WHILE (@@FETCH_STATUS -1)
BEGIN
FETCH NEXT FROM @CrsrVar
END
CLOSE @CrsrVar
DEALLOCATE @CrsrVar
GO
数据库API并不支持输出游标参数的存储过程。一个包含输出游标参数的存储过程不能直接被数据库API执行。这些存储过程之可以被其他的存储过程,触发器,Transact-SQL 批处理,脚本调用执行。
全局游标在没有被显式释放或连接关闭前一直有效。局部游标默认将在存储过程,触发器,批处理结束时释放,除非它被作为输出参数输出。那个局部游标也将在引用它的存储工程结束时被释放。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











C 언어에서 static 키워드의 역할과 사용법에 대한 심층 분석 C 언어에서 static은 함수, 변수 및 데이터 유형을 정의하는 데 사용할 수 있는 매우 중요한 키워드입니다. static 키워드를 사용하면 객체의 링크 속성, 범위, 생명주기가 변경될 수 있습니다. C 언어에서 static 키워드의 역할과 사용법을 자세히 분석해 보겠습니다. 정적 변수 및 함수: 함수 내에서 static 키워드를 사용하여 정의된 변수를 전역 수명 주기를 갖는 정적 변수라고 합니다.

Windows 11에는 기본 설정부터 인터넷의 모든 타사 앱에 이르기까지 겉보기에 무제한의 사용자 지정 옵션이 있습니다. 마우스 커서의 모양을 변경할 수 있는 앱도 있습니다. 커서를 수정하는 것은 컴퓨터에 독특한 모양을 부여하는 좋은 방법입니다. 모든 컴퓨터에 똑같은 지루한 흑백 포인터를 붙일 필요는 없습니다. 하지만 그렇더라도 커서 모양을 변경하기 위해 소프트웨어를 다운로드할 필요는 없습니다. 커서 모양을 변경하는 방법은 무엇입니까? Windows 11에서는 커서에 대해 약간의 사용자 지정 기능을 제공합니다. 제어판으로 이동하여 마우스 옵션을 선택하면 커서를 변경할 수 있습니다. "마우스 속성"이라는 새 창이 나타납니다. 마우스 속성에서 색 구성표, 크기, 디자인을 변경할 수 있습니다. 컴퓨터는 자연스럽게

제목: C언어에서는 go가 키워드인가요? 상세 분석 C 언어에서 "go"는 키워드가 아닙니다. C 언어의 키워드는 C 표준에 의해 지정되며 특정 문법 구조나 기능을 나타내는 데 사용됩니다. 이는 컴파일러에서 특별한 의미를 가지며 식별자나 변수 이름으로 사용할 수 없습니다. 예를 들어, 키워드 "int"는 정수 데이터 유형을 나타내고 "if"는 조건문을 나타내는 식입니다. "go"가 C 언어의 키워드인지 확인하려면 간단한 프로그램을 작성하여 테스트할 수 있습니다. 예는 다음과 같습니다: #inc

PHP에서 var 키워드의 역할과 예 PHP에서는 var 키워드를 사용하여 변수를 선언합니다. 이전 PHP 버전에서는 var 키워드를 사용하는 것이 멤버 변수를 선언하는 관용적인 방법이었지만 더 이상 사용이 권장되지 않습니다. 그러나 어떤 경우에는 var 키워드가 계속 사용됩니다. var 키워드는 주로 지역 변수를 선언하는 데 사용되며 해당 변수는 자동으로 지역 범위로 표시됩니다. 즉, 변수는 현재 코드 블록 내에서만 볼 수 있으며 다른 함수나 코드 블록에서는 액세스할 수 없습니다. var 사용

C 언어에는 32개의 키워드가 있습니다. 키워드의 기능에 따라 데이터 유형 키워드, 제어문 키워드, 저장 유형 키워드 및 기타 키워드의 네 가지 범주로 나눌 수 있습니다. char, double, float, int 등을 포함한 12개의 데이터 유형 키워드가 있습니다. for, break, if, else, do 등을 포함한 12개의 제어문 키워드가 있습니다. auto, static, extern 등 const, sizeof 등을 포함한 4개의 다른 키워드가 있습니다.

Go 언어에서 while은 키워드가 아닙니다. "for {sum++ if sum>10{break}else{...}}"와 같이 for 문과 break를 함께 사용하면 while 루프의 효과를 얻을 수 있습니다. go 언어에는 break, default, func, select, case, defer, go, map, else, goto, for, if, var 등과 같은 25개의 키워드가 있습니다.

Go 언어의 키워드는 다음과 같습니다: 기본 키워드: const, func, type, var, if, else, for, return 데이터 유형 관련 키워드: bool, string, int, float64, 인터페이스{}, map, 슬라이스 기타 키워드: break, 계속하다, 연기하다, 가다, 선택하다, 범위를 정하다

PHP에서 확장 키워드의 역할과 사용법에 대한 자세한 설명 PHP 프로그래밍에서 확장은 클래스 상속을 구현하는 데 사용되는 매우 중요한 키워드입니다. 확장 키워드를 통해 하나 이상의 기존 클래스의 속성과 메서드를 상속할 수 있는 새 클래스를 만들 수 있습니다. 상속은 객체지향 프로그래밍에서 중요한 개념으로, 코드 재사용과 확장을 더욱 편리하고 유연하게 만들어줍니다. 이번 글에서는 extends 키워드의 기능과 사용법을 자세히 소개하겠습니다. 연장하다
