0

我正在使用 SQL Server 2012 并正在寻找具有替换变量的 Oracle 语句的转换:

    UPDATE customers
    SET region = '&region'
    WHERE state = '&state'

有人请帮我解决这个问题。

4

2 回答 2

1

它会像

Declare @State varchar(100)
Declare @Region varchar(100)

UPDATE customers
SET region = @Region
WHERE state = @State
于 2013-07-11T14:32:31.750 回答
1

我绝不是 Oracle 专家,但我认为替代变量特定于 SQL*PLUS 而不是 Oracle 数据库。

SQL*PLUS

define region=West
define state=California

 UPDATE customers
    SET region = '&region'
    WHERE state = '&state'

我的理解是SQL*PLUS会执行以下SQL:

 UPDATE customers
    SET region = 'West'
    WHERE state = 'California'

MS SQL Server 2012 中的等价物是:

Declare @Region varchar(100)
Declare @State varchar(100)

Set @Region = 'West'
Set @State = 'California'

Update Customers
Set region = @Region
Where State = @State

或者您可能会丢失所有变量并简单地使用:

Update Customers
Set Region = 'West'
Where State = 'California'

编辑:

更新仅影响当前在表中的数据。如果您稍后将更多数据添加到表中,则需要再次运行更新。

例如

添加更多带有State“California”的行不会自动将Region插入行的列设置为“West”。

还要确保您对在表结构中声明的变量使用相同的数据类型(和长度)。

于 2013-07-11T14:32:40.040 回答