Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Select dinamica

Estas en el tema de Select dinamica en el foro de SQL Server en Foros del Web. Hola, estoy intentando hacer la siguiente select dinamica con sp_executesql , y no me devuelve valores cuando sí existen Código: Set @strSQL = N'select Max(UltimoValor) ...
  #1 (permalink)  
Antiguo 25/09/2007, 04:18
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 19 años, 5 meses
Puntos: 9
Select dinamica

Hola, estoy intentando hacer la siguiente select dinamica con sp_executesql, y no me devuelve valores cuando sí existen

Código:
Set @strSQL = N'select Max(UltimoValor) from ' + @T 
EXEC sp_executesql @strSQL, N'@nuevoValor int OUTPUT', @nuevoValor OUTPUT
Set @nuevoValor = @nuevoValor + 1

Exec ('Update Valores set NuevoMaximo = ' + @nuevoValor + ' where NombreTabla = ''' + @T + '''')
@T es un NVARCHAR que contiene el nombre de una tabla con valores, pero @nuevoValor siempre recoge 0

Uso SQL Server 2000

Ayuda por favor!!!
  #2 (permalink)  
Antiguo 25/09/2007, 06:39
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Re: Select dinamica

Código:
Declare @NuevoValorX as int

Set @strSQL = N'select  @nuevoValor  = Max(UltimoValor) from ' + @T 
EXEC sp_executesql @strSQL, N'@nuevoValor int OUTPUT', @nuevoValor = @NuevoValorX  OUTPUT

Set @NuevoValorX  = isnull(@NuevoValorX,0) + 1

Exec ('Update Valores set NuevoMaximo = ' + @NuevoValorX + ' where NombreTabla = ''' + @T + '''')
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.

Última edición por Andres95; 25/09/2007 a las 06:40 Razón: Isnull
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:22.