Error: “Must declare the scalar variable” for insert statements in multiple database

后端 未结 3 1992
梦如初夏
梦如初夏 2021-02-07 11:34

I created a SQL script to add an entry in different database. However, when I run the script through SQL Server Management Studio.

declare @address varchar(50)
s         


        
相关标签:
3条回答
  • 2021-02-07 12:00

    the variable @address only lives in the batch that its defined in, batches are delimited by the the go statement, where it goes out of scope.

    try this:

    declare @address varchar(50)
    set @address = 'Hope'
    
    insert into DB1.dbo.Address
     values (@address)
    
    insert into DB2.dbo.Address
     values (@address)
    go
    
    0 讨论(0)
  • 2021-02-07 12:01

    It's because you are using go between the statement that declares the variable and the statement that uses it.

    The go command is not an SQL command, it's a separator between sessions in Management Studio. Just remove all the go commands in your query, and you can use the variable all the way.

    0 讨论(0)
  • 2021-02-07 12:10

    It's the GO statement.

    all local variable declarations must be grouped in a single batch. This is done by not having a GO command until after the last statement that references the variable. (from MSDN)

    0 讨论(0)
提交回复
热议问题