繁体   English   中英

如何将这些循环的输出插入到我的表中?

[英]How do I insert the output of these loops into my table?

Declare @PASS char(16)

Declare @COUNTER int

SET @COUNTER = 0

While @COUNTER < 2

begin

    select @PASS =replace
                  (replace
                     (replace
                        (replace
                           (replace(
                              (select substring(@String, 1 + Number, 1) 
                               from master..spt_values
                               where number < datalength(@String)
                               order by NEWID()
                               for xml path('') 
                              ), '<', '<')
                           ,'>','>')
                        ,'&','&')
                     ,'"','''''')
                  ,'&apos','''')
   select @pass
   set @counter = @counter + 1

end

根据您之前的问题,我认为您想生成多个密码。

但是您不能将其存储在一个变量中,因此请改用临时表/表变量。

演示

DECLARE @String NVARCHAR(MAX) = 
     N'abcdefghijkmnopqrstuvwxyz' +  --lower letters
      'ABCDEFGHIJKMNOPQRSTUVWXYZ' +  --upper letters
      '0123456789'+  --number characters
      ')[:|!@$&<';

CREATE TABLE #passwords(Id INT IDENTITY(1,1), pass NVARCHAR(100));

DECLARE @i           INT = 0
       ,@pass_number INT = 20; -- max number of passwords

WHILE @i < @pass_number  
BEGIN
    SET @i += 1; 
    INSERT INTO #passwords(pass)
    Select [pass] = CAST(replace
                      (replace
                      (replace
                      (replace
                      (replace(
                      (select
                       substring(@String, 1 + Number, 1) 
                       from master..spt_values
                       where number < datalength(@String)
                       order by NEWID()
                       for xml path('') )
                        ,'&lt;', '<')
                        ,'&gt;','>')
                        ,'&amp;','&')
                        ,'"','''''')
                        ,'&apos','''') AS CHAR(16))
END
                      
SELECT *
FROM #passwords;

你也可能想像这样替换:

,'&lt;', '<')
,'&gt;','>')
,'&amp;','&')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM