一体。如果您已经有(100000-@intMax)行仅剩下@intMax排列,则应该找到@intMax剩余值
INSERT TOP (@intMax) MyTable (RndColumn)SELECt RndValueFROM ( SELECt DISTINCT TOP 100000 -- covers potential range from 00000 to 99999 RIGHt('00000' + CAST(ABS(CHECKSUM(NEWID())) AS varchar(10)), 5) AS RndValue FROM sys.columns c1, sys.columns c2 ) fooWHERe NOT EXISTS (SELECt * FROM MyTable T WHERe T.RndColumn = foo.RndValue

![TSQL生成5个字符长的字符串,数据库中尚不存在的所有数字[0-9] TSQL生成5个字符长的字符串,数据库中尚不存在的所有数字[0-9]](http://www.mshxw.com/aiimages/31/634816.png)
