簡體   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