下面是个小实验可以自己试试

-- 先创建一个表 实验用
create table test_5(
id int identity(1,1),
na varchar(50),
)
-- 将数据插入表中,插入null的目的就是为了,后续重新问题
insert into test_5(na)
  select 'a' union all
  select null union all
  select 'c' union all
  select 'd' union all
select 'e' union all
select null
--- 下面是循环的小示例
declare @count int ;
select @count = count(*) from test_5
while @count>0
begin
declare @name varchar(50)

select top 1 @name = na from test_5 where na is not null
select @count as 执行次数, @name as na

delete from test_5 where na =@name
set @count =@count -1
end

执行结果如下:

-- 是不是与你想的不一样,这里他跟我们用java或c#中写的不一样的,我们本能的人为,循环中的变量每次都初始化,实际上不然;

实际上循环中的声明只声明了一次,如果想不出现问题,那就 则声明的同时给他赋一个初始值;SQL的变量作用域是【批】,这一点在MSDN中有说。

所以说 sql中 声明语句比较特殊,它并不依赖位置,系统“见到”就算数,所以不管变量在多深的语句块中声明,它在本批接下来的语句中都是有效的。所以我们在使用的时候,尤其是循环中使用变量一定要做好处理;

sqlserver 循环中定义变量一定要小心,否则你的数据就是错误的的更多相关文章

  1. 【Javascript】: for循环中定义的变量在for循环体外也有效

    for循环中定义的变量在for循环体外也有效 <script> (function(){ var a = 111; for(var i=0;i<5;i++){ var carl = ...

  2. 【SQL】小心在循环中声明变量——浅析SQL变量作用域

    本文适用:T-SQL(SQL Server) 先看这个语句: --跑3圈 BEGIN --每圈都定义一个表变量,并插入一行 DECLARE @t TABLE(Col INT PRIMARY KEY) ...

  3. js for 循环中的 变量问题。

    今日处理项目中的一个循环,本来就是一个小小的for循环,后来发现该段程序出现了问题,仔细检查代码没有发现其中的错误.无奈只好叫来了老大帮忙.通过在模版中断点调试(该方式只能自己写debugger断点) ...

  4. case中定义变量

    1.c语言switch/case中定义变量   case 0: int b = 0 ; printf("0");break; case 1: printf("1" ...

  5. (转载)JavaScript中定义变量

    (转载)http://blog.163.com/xuxiaoqianhz@126/blog/static/165190577201061594421870/ JavaScript中定义变量有两种方式: ...

  6. JavaScript 中定义变量时有无var声明的区别

    关于JavaScript中定义变量时有无var声明的区别 var a=5; //正确 a=5; //正确 在javascript中,以上两种方法都是定义变量的正确方法.微软的Script56.CHM中 ...

  7. 不要在.h文件中定义变量

    今天在头文件.h中初始化了一个数组和函数,在编译的时候提示这个数组和函数重新定义了,检查后发现,犯了一个致命的错误,在头文件中定义变量... 以下引用别人的一篇说明,警示自己. C语言作为一种结构化的 ...

  8. css中定义变量

    css中定义变量 定义变量可分多种情况: 1.定义全局变量 :root { --borderColor: #ccc;} 2.定义某元素下的变量 .look{ --borderColor: #ccc;} ...

  9. [Linux][C][gcc][tips] 在头文件中定义变量引发的讨论

    概述 本人的原创文章,最先发表在github-Dramalife-note中.转载请注明出处. Define variable(s) in header file referenced by mult ...

  10. ansible中定义变量的若干方法

    Ansible支持十几种定义变量的方式 根据优先级排序的定义方式: Inventory变量 Host Facts变量 Playbook变量 Playbook提示变量 变量文件 命令行变量 1.Inve ...

随机推荐

  1. 面试题-简单介绍 Spring MVC 执行流程或者Spring MVC的工作原理

    摘要 简单介绍一下当用户在客户端发起请求后,Spring MVC 的执行流程,提升自己对Spring框架的认知层次.一言以蔽之,解答[Spring MVC的工作原理是什么],这是一个热点面试题.    ...

  2. Leangoo助力医药行业项目降本增效

    医药行业痛点诸多,制药研发周期长.生物技术创新协同难.医疗器械研发生产衔接不畅.医疗保健服务流程繁琐.Leangoo 可化解困境,促各领域信息共享.流程优化.协同增效,提升效率与质量,推动医药行业整体 ...

  3. 代码随想录第五天 | 哈希表part01

    哈希表理论基础 建议:大家要了解哈希表的内部实现原理,哈希函数,哈希碰撞,以及常见哈希表的区别,数组,set 和map. 什么时候想到用哈希法,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要 ...

  4. Antd VUE中table子表同时只展开一个子信息的说明

    前言 在网上搜索了很久,很多方法都不太好用,不过经过整理发现,有一个方式是最简单的,比网路上那些copy粘贴的千篇一律的错来说,其实真正的使用方式很简单 想必大家要实现的效果都是上图这样的 <t ...

  5. 敏捷史话(十):我牺牲了滑雪时间,参加了一场软件革命——Jon Kern

    "在镜头定格的一刹那,所有美好都和你不期而遇",这是 Jon Kern 对生活的表达.为了更好地记录生活,他在一家名为 flickr 的网站上创建了一个属于自己的照片博客,在这个博 ...

  6. Python基础—初识函数(二)

    1.给函数参数增加元信息 写好一个函数,然后想为这个函数的参数增加一些额外的信息,这样的话其他使用者就能清楚的知道这个函数应该怎么使用. 使用函数参数注解是一个很好的办法,它能提示程序员应该怎样正确使 ...

  7. PolarCTF网络安全2025春季个人挑战赛 web方向个人wp

    xCsMsD 首先注册,注册后登录,显示一个xss窗口和一个cmd窗口,可以输入xss代码和命令执行指令 首先命令执行ls发现能够正确显示当前目录文件 然后尝试ls /发现没有回显,这时应该猜测是有过 ...

  8. pytorch入门 - 修改huggingface大模型配置参数

    介绍 Hugging Face的Transformers库提供了大量预训练模型,但有时我们需要修改这些模型的默认参数来适应特定任务. 本文将详细介绍如何修改BERT模型的最大序列长度(max_posi ...

  9. LLM 上下文长度详细介绍

    1.概述 在<Token:大语言模型的"语言乐高",一切智能的基石>与<LLM 输出配置 (LLM output configuration)>这两篇博文中 ...

  10. [网络安全]工具-quasar开源远控软件使用教程

    首先声明本文仅作科普,若用作违法途径与作者无关!!! quasar是著名的开源后门软件,本文来分享它的基本使用.一些常见问题及其解决方法 一.下载地址 Quasar v1.4.1下载地址:https: ...