给数据库插入测试数据,要求中文字符(偶尔夹杂英文,怪字符也行),控制在256字符.

解决方案 »

  1.   

    65535--生成int列,再用unicode(int)
      

  2.   

    SELECT TOP 20 number+1 序号,NCHAR(19969+Number) 汉字
    FROM MASTER..spt_values
    WHERE TYPE='p'
    ORDER BY NEWID()
      

  3.   

    SELECT 
    TOP 65536
    ID=IDENTITY(INT,0,1)
    INTO #
    FROM syscolumns a,syscolumns b,syscolumns c,syscolumns dDECLARE @s NVARCHAR(256)SET @s=''
    SELECT TOP 256 @s=@s+NCHAR(ID) FROM # ORDER BY NEWID()--隨機
    PRINT @s樓主按以上方法更改想要的效果
      

  4.   


    select     nchar(cast((40959 - 1248 )*rand() + 1248 as int))  + 
               nchar(cast((40959 - 1248 )*rand() + 1248 as int))   + 
               nchar(cast((40959 - 1248 )*rand() + 1248 as int))   + 
               nchar(cast((40959 - 1248 )*rand() + 1248 as int)) 
      

  5.   

    ++
    用 spt_values 内部字典表是个不错的解决方案
      

  6.   

    declare   @maxNumber   int,   --随机数最大值 
       @minNumber   int,   --随机数最小值 
                      @rows   int               --要取得的行数   
    select   @maxNumber=10000, @minNumber=10000, 
                    @rows=10   
        
    set   rowcount   @rows   
        
    select   distinct   '1234 4567 '+convert(varchar,ID)+' '+convert(varchar,ID)+' '+convert(varchar,ID)+' '+convert(varchar,ID)   as   'B'   
    from   (    
                    select   convert(int,rand(checksum(newid()))*@minNumber)   as   ID   
                    from   syscolumns,sysobjects   
                )t   
        
    set   rowcount   0 
    -----------------------------------------------------------------------
    declare     @num1     int ,@num2     int ,@num3     int ,@num4     int   
    set @num1=rand(abs(convert(int,checksum(newid()))))*10000
    set @num2=rand(abs(convert(int,checksum(newid()))))*10000
    set @num3=rand(abs(convert(int,checksum(newid()))))*10000
    set @num4=rand(abs(convert(int,checksum(newid()))))*10000   
    select   convert(varchar(100),@num1)+' '+convert(varchar(100),@num2)+' '+convert(varchar(100),@num3)+' '+convert(varchar(100),@num4)
    ---------------------------------------------------------------------------
    declare @r1 numeric (15,0),@r2 numeric (15,0)
    SELECT @r1=RAND( (DATEPART(mm, GETDATE()) * 100000 )
               + (DATEPART(ss, GETDATE()) * 1000 )
               + DATEPART(ms, GETDATE()) )*10000
    print @r1