当前位置: 首页 > 面试题库 >

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

芮学
2023-03-14
问题内容

我创建了一个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为了完成任务而将实际值放在语句中,尽管我想知道是什么引起了错误。


问题答案:

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

试试这个:

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

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

insert into DB2.dbo.Address
 values (@address)
go


 类似资料:
  • 问题内容: 我正在尝试使用EF5从bcontext.Database.SqlQuery执行存储过程。 它抛出一个错误 如果customerNumber是staff,则SP返回,否则返回行。 如何处理? 问题答案: 由于使用的是命名参数,因此必须为要传递的参数指定匹配名称。

  • 本文向大家介绍必须会的SQL语句(三) 数据插入,包括了必须会的SQL语句(三) 数据插入的使用技巧和注意事项,需要的朋友参考一下 1.规范一些使用插入语句的小规范   1)中文字符串前 最好 加一个N   2)列名用中括号 扩起来   像这样  [列名]   2.常规写法 Insert into tableName ( [column1] , [column2] ) values (N'中文',

  • 所以我一直有这个错误,我不知道发生了什么。我在谷歌上搜索了一下,读了一些关于这个错误的问题,但什么都没用。我只想运行它,这样我就可以完成我的项目。 错误:开始低库存;结束;*第1行错误:ORA-06550:第1行,第9列:PLS-00201:标识符“LOWINVENTORY”必须声明ORA-06550:第1行,第7列:PL/SQL:忽略语句 编辑: 表创建:

  • 我使用mariadb和heidisql来执行sql: DECLARE@Account tID INT; 将值('testfirstname','a','testlastname','user@email.com“,1,1,NOW()); set@Account tID=Last_Insert_Id(); 我一直收到一个错误: QL Error(1064):您的SQL语法有错误;查看与您的Maria

  • 问题内容: 我想声明一个服务器名称,并在插入语句中使用该名称。到目前为止,我得到的只是一条错误消息。 这给了我: 问题答案: 我之前遇到过这个问题,发现的唯一解决方法是动态sql

  • 在Java,如果我们运行: 它将抛出: 但是,在php中,如果我们运行: 它将打印%1。 我怀疑这是否是因为Java是强类型语言,而php是弱类型语言。能不能有人给出一个更深层次、更低层次的解释?