文章目录
循环插入数据库行
-- 声明变量
DECLARE @i INT = 201;
-- 开始循环
WHILE @i <= 200
BEGIN
-- 插入数据
INSERT INTO T_AGVPOS (POS) VALUES (@i);
SET @i = @i + 1;
END;
我有一个sqlserver表,有两列pos state分别代表位置和状态,位置区间为1到200,状态分为1和0,现在我有个需求,想通过一条语句,将所有状态设置成0,同时将指定的若干个位置设置成1
可以使用 `IN` 子句简化条件,语句如下:
```sql
UPDATE 表名 SET state = CASE WHEN pos IN (位置1, 位置2, 位置3) THEN 1 ELSE 0 END;
说明:
- 将
表名
替换为实际表名,位置1, 位置2, 位置3
替换为需要设为1
的具体位置(如5, 10, 15
)。 - 一行语句完成全表重置为
0
,并对指定位置批量设为1
。