Rand() dentro de una Funcion

10/11/2004 - 16:14 por Elcritico | Informe spam
Quiero crear una funcion para que al pasarle una cadena, eta funcion me
transforme esos datos en un cursor,
Me funciono todo bien hasta que quise pasarla a funcion.

create function matrix (@cadena nvarchar(255))
returns nvarchar(100)
begin
declare @nombre as char(5)
declare @busca as varchar(2)
select @cadena = '301,302,303,'
select @nombre = 'au'+ dbo.alltrim((str(round(15*10000,2),0)))
select @busca = CHARINDEX(',',@cadena )
exec('CREATE TABLE '+ @nombre + '( campo1 char(5))')
WHILE CHARINDEX(',',@cadena) > 0
begin
print('insert into '+ @nombre +' select
left('''+@cadena+''','+@busca+'-1)')
exec('insert into '+ @nombre +' select
left('''+@cadena+''','+@busca+'-1)')
select @cadena = SUBSTRING(@cadena, CHARINDEX(',',@cadena )+1,99)
end
exec('select * from ' + @nombre )
exec('drop table ' + @nombre )
end

el tema es que me sale el mensaje
Uso no válido de 'rand' en una función.
¿porque no le gusta el Rand() dentro de una funcion?

Preguntas similare

Leer las respuestas

#1 Elcritico
10/11/2004 - 16:29 | Informe spam
No se permiten las funciones no deterministas integradas en el cuerpo de la
funciones definidas por el usuario. Son las siguientes:

@@CONNECTIONS --@@TOTAL_ERRORS
@@CPU_BUSY -@@TOTAL_READ
@@IDLE --@@TOTAL_WRITE
@@IO_BUSY GETDATE
@@MAX_CONNECTIONS -GETUTCDATE
@@PACK_RECEIVED NEWID
@@PACK_SENT --RAND (aqui el culpable)
@@PACKET_ERRORS --TEXTPTR
@@TIMETICKS

=O(
debere reemplazarlo por DATEPART(ms, GETDATE()) + (DATEPART(ss, GETDATE())
* 1000 ) =O(
"Elcritico" escribió:

Quiero crear una funcion para que al pasarle una cadena, eta funcion me
transforme esos datos en un cursor,
Me funciono todo bien hasta que quise pasarla a funcion.

create function matrix (@cadena nvarchar(255))
returns nvarchar(100)
begin
declare @nombre as char(5)
declare @busca as varchar(2)
select @cadena = '301,302,303,'
select @nombre = 'au'+ dbo.alltrim((str(round(15*10000,2),0)))
select @busca = CHARINDEX(',',@cadena )
exec('CREATE TABLE '+ @nombre + '( campo1 char(5))')
WHILE CHARINDEX(',',@cadena) > 0
begin
print('insert into '+ @nombre +' select
left('''+@cadena+''','+@busca+'-1)')
exec('insert into '+ @nombre +' select
left('''+@cadena+''','+@busca+'-1)')
select @cadena = SUBSTRING(@cadena, CHARINDEX(',',@cadena )+1,99)
end
exec('select * from ' + @nombre )
exec('drop table ' + @nombre )
end

el tema es que me sale el mensaje
Uso no válido de 'rand' en una función.
¿porque no le gusta el Rand() dentro de una funcion?
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida