我试图在整个表格中找到单词 true 的所有实例并将它们更改为“1”。为了将来节省时间,我希望能够一次更改每一列并且只运行一个查询。
update myTable
set field1, field2, field3=1
where field1, field2, field3='true'
这就是我正在做的事情。
我试图在整个表格中找到单词 true 的所有实例并将它们更改为“1”。为了将来节省时间,我希望能够一次更改每一列并且只运行一个查询。
update myTable
set field1, field2, field3=1
where field1, field2, field3='true'
这就是我正在做的事情。
update mytable
set
field1 = case when field1='true' then 1 else field1 end,
field2 = case when field2='true' then 1 else field2 end,
field3 = case when field3='true' then 1 else field3 end
where
field1 ='true' or field2='true' or field3='true'
您当前的语法很接近。您需要为每个字段指定值:
UPDATE MyTable
SET
Field1 = CASE WHEN Field1 = 'True' THEN 1 ELSE Field1 END,
Field2 = CASE WHEN Field2 = 'True' THEN 1 ELSE Field2 END,
Field3 = CASE WHEN Field3 = 'True' THEN 1 ELSE Field3 END
这将检查每一行并根据需要更新这些字段。
不,正如您所写的那样,没有一种简单的方法可以做到这一点。
您可以做的是使用以下方法动态循环列:
select name from sys.columns
where object_id=(
select object_id from sys.objects where name like 'myTable '
)
并一一检查。
它需要一些编码并且执行时间不会是最好的,但它会避免你编写大量代码,并且主要优点是你可以通过更改名称来更改表。