我想将以下查询应用于大量位置的其他两个 circ_slip 值(“付款”和“退款”)。
delete from circ_slip_field
where location = 'NEW LOCATION' and circ_slip = 'waive'
go
declare @copy_loc varchar(7), @new_loc varchar(7)
select @copy_loc = 'OLD LOCATION'
select @new_loc = 'NEW LOCATION'
insert circ_slip_field
(circ_slip,location,section,ord,circ_slip_field_type,label,field_column,
append_to_prev,justify,max_field_len,min_field_len,data_mask)
select circ_slip,@new_loc,section,ord,circ_slip_field_type,label,field_column,
append_to_prev,justify,max_field_len,min_field_len,data_mask
from circ_slip_field
where circ_slip = 'waive' and location = @copy_loc
所以我在开头添加了以下行,然后将原始查询复制了 3 次,将 'waive' 的两个实例分别替换为 'payment' 和 'refund'。
declare @copy_loc varchar(7), @new_loc varchar(7)
select @copy_loc = 'COPY LOCATION'
select @new_loc = 'NEW LOCATION'
我还删除了两个选择变量语句(@copy_loc 和@new_loc),因为它们已经被声明了。
关于为什么这对我不起作用的任何想法?我将不胜感激。不用说我对 SQL 很陌生。
** 编辑:“没有工作”是指查询运行没有错误,但没有对新位置进行任何更改。
*第二次编辑:我认为问题可能出在“go”命令上。为了让变量在整个过程中工作,我需要从我的三个复制查询中删除“go”。