使用SQL Server 2012,我正在寻找具有替换变量的Oracle语句的转换:
UPDATE customers
SET region = '®ion'
WHERE state = '&state'
有人请帮助我。
答案 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 = '®ion'
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”。
还要确保对表结构中声明的变量使用相同的数据类型(和长度)。