gpt4 book ai didi

存储过程中的 SQL Server 变量范围

转载 作者:行者123 更新时间:2023-12-02 01:47:51 24 4
gpt4 key购买 nike

我想在 SQL Server 存储过程的 if/else 语句中声明一个变量。我知道这是相当不可能的,因为 SQL Server 不会对过程中的变量声明进行内存管理。有没有办法在 if/else 语句中定义一个变量的作用域,然后在另一个 if/else 语句中重新声明具有相同名称的变量?例如:

create procedure Foo
as
begin
if exists (x)
begin
declare @bob int
set bob = 1
end
else
begin
declare @bob int
set bob = 2
end
end

最佳答案

来自books online :

The scope of a variable is the range of Transact-SQL statements that can reference the variable. The scope of a variable lasts from the point it is declared until the end of the batch or stored procedure in which it is declared.

但是。没有什么可以阻止你这样做:

create procedure Foo as begin

declare @bob int

if exists (x)
begin
set @bob = 1
end
else
begin
set @bob = 2
end

end

关于存储过程中的 SQL Server 变量范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5994957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com