El código original es PL/SQL de Oracle. No voy a hacer la traducción completa a T-SQL, pero te dejo algunos tips.
El cursor for loop de Oracle se traduce como:
Código:
declare x cursor for select * from information_schema.columns
dbms_random se puede traducir con variaciones de la función rand()
El loop es algo clásico:
Código:
while (p_records <= l_rows)
begin
end
El execute immediate se traduce con:
Y la vista all_objects es sys.sysobjects.
Edito:
Me faltó sql%rowcount es @@rowcount
Saludos