One*_*und 14 sql sql-server scope sql-server-2005
我创建了一个SQL脚本来在不同的数据库中添加一个条目.但是,当我通过SQL Server Management Studio运行脚本时.
declare @address varchar(50)
set @address = 'Hope'
use DB1
go
insert into Address
values (@address)
go
use DB2
go
insert into Address
values (@address)
go
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
必须声明标量变量'@address'
在这一点上,我完全感到困惑,因为我@address
在执行insert
语句之前声明了变量.是因为我正在遍历不同的数据库吗?
截至目前,我只是insert
为了完成任务而将实际值放在语句中,尽管我想知道导致错误的原因.
Pre*_*gha 24
变量@address只存在于其定义的批处理中,批处理由go语句分隔,它超出了范围.
试试这个:
declare @address varchar(50)
set @address = 'Hope'
insert into DB1.dbo.Address
values (@address)
insert into DB2.dbo.Address
values (@address)
go
Run Code Online (Sandbox Code Playgroud)
go
这是因为您在声明变量的语句和使用它的语句之间使用。
该go
命令不是 SQL 命令,它是 Management Studio 中会话之间的分隔符。只需删除go
查询中的所有命令,您就可以一直使用该变量。