我正在使用Oracle语句的替换变量寻找SQL转换

时间:2013-07-11 14:03:57

标签: sql sql-server variables substitution sql-server-2012-express

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

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

有人请帮助我。

2 个答案:

答案 0 :(得分:1)

这将是

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

UPDATE customers
SET region = @Region
WHERE state = @State

答案 1 :(得分: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'

编辑:

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

e.g。

使用State“加利福尼亚”添加更多行不会自动将插入行的Region列设置为“West”。

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