小编典典

错误:多个数据库中插入语句的“必须声明标量变量”

sql

我创建了一个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

我收到以下错误:

必须声明标量变量“ @address”

在这一点上,我完全感到困惑,因为@address在执行insert语句之前已经声明了变量。是因为我正在遍历其他数据库吗?

到目前为止,我只是insert为了完成任务而将实际值放在语句中,尽管我想知道是什么引起了错误。


阅读 209

收藏
2021-04-17

共1个答案

小编典典

变量@address仅存在于其定义的批处理中,而批处理由go语句定界,超出范围。

试试这个:

declare @address varchar(50)
set @address = 'Hope'

insert into DB1.dbo.Address
 values (@address)

insert into DB2.dbo.Address
 values (@address)
go
2021-04-17