zamiana 20 n-losowych licz na 20 liter z zakresu od a do z

0

Potrzebuje Waszej pomocy.
Musze zamienić 20 losowo wybranych liczb (dzięki poleceniu rand) na 20 liter w każym polu.
Poniżej przedstawima kod który udało mi śie wykonać niestety nie działa tak jak należy:

create table liczby
(
klucz int primary key,
slowo char(20)
)
-- Kolejno tworzymy procedure
alter procedure zapelnianie_wyrazami @n int
as
declare @i int
set @i=1
truncate table liczby
while @i<=@n
begin
insert into liczby values(@i, nchar(floor(1+rand()*29)) <<-- Właśnie tutaj coś nie gra :()
select @i=@i+1
end

exec zapelnianie_wyrazami 20

select * from liczby

Z góry dziękiu za wszelaką pomoc

0

Baza, baza...

0

Z kodu wynika, ze chyba mssql

0

Sorki zapomniałem dodać MSSQL 2005

Pomóżcie Prosze [???]

0

co nie gra - jakiś błąd, dostajesz złe dane...

0

Kilka bledow w procedurze bylo, wiec nie wiem jak dzialalo ;)
Takie cus hula na mssql 2000

create procedure zapelnianie_wyrazami @n int
as
begin
	declare @i int
	set @i=1
	truncate table liczby
	while @i <= @n
		begin
		insert into liczby values(@i, char(floor(ASCII('a')+rand()*26)))
		set @i=@i+1
	end
end
0

Johny niski ukłon za powyższy kod
Super że działa, tylko jak zrobić tak aby w kolumnie slowo pojawiło się 20 losowo wybranych liter. próbowałem różnymi pętlami ale jak się to mówi po czesku ne funguje.

Pzdr

0

Nie mam teraz pod reka sql'a, ale tak na oko to takie cos powinno zadzialac:

CREATE procedure zapelnianie_wyrazami @n int
AS
begin
        declare @i int
		declare @slowo char(20)
		declare @licznik
        SET @i=1
        TRUNCATE TABLE liczby
        while @i <= @n
                begin
					set @licznik = 0
					set @slowo = ''
					while @licznik < 20
					begin
						set @slowo = @slowo + char(floor(ASCII('a')+rand()*26))
						@licznik = @licznik + 1
					end
                INSERT INTO liczby VALUES(@i, @slowo)
                SET @i=@i+1
        end
end

1 użytkowników online, w tym zalogowanych: 0, gości: 1