日期:2014-05-18  浏览次数:20476 次

大部分是“所影响的行数为 1 行”,中间有一部分是“所影响的行数为 2 行”
SQL code
declare @待赋值编号 int
declare @待赋值字符串编号 char(10)
declare @查询出的姓名 char (10)
set @待赋值编号 = 0

while @待赋值编号 <= 999
begin
    set @待赋值编号 = @待赋值编号 + 1
    set @待赋值字符串编号 = @待赋值编号
    select top 1 @查询出的姓名 = 姓名 from 男生
    where 编号 is null
    update 男生
    set 编号 = @待赋值字符串编号
    where 姓名 = @查询出的姓名
end

go


男生这个表有1000行。三个列:编号、姓名、性别。姓名和性别都是赋值好的,编号全都是null。
把999改成300的话最后一个消息就是“所影响的行数为 2 行”,然后显示几次这个之后再次显示“所影响的行数为 1 行”

另外中文变量名影响效率么?

------解决方案--------------------
SQL code


--估計你表里有2個名字相同的數據,不建議用姓名匹配Update
--建議加個ID做為主鍵,會自動生成遞增整型,可用為做標識字段
--再把你的那段Update裏面的姓名改為這裡的ID

ALTER TABLE A ADD ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY