A-TAK.COM

Declareのスコープ

※Amazonのアソシエイトとして、A-TAK.COMは適格販売により収入を得ています
※本サイトではその他アフィリエイトも利用しております。

シェア

今回結構長めのバッチを作ってみて、いまいちDeclareで定義した変数のスコープがよく分からなかったのですが、なんとなく分かってきました。

例えば、
declare @test int
declare @test int
とすると@testが重複宣言されているとエラーになるが、
declare @test int
GO
declare @test int
だとエラーにならない
ヘルプによると、
「ローカル変数の有効範囲は、これが宣言されているバッチ、ストアド プロシージャ、またはステートメント ブロックです。」
とあり、GOの説明に「バッチ終了を通知する」とあるので、それで二回宣言してもエラーにならないのでしょう。
これをうまく使えば、結構すっきりした形でバッチがかけそうです。


シェア

投稿日

カテゴリー:

投稿者:

カテゴリ一覧