SQL - Establecer valor en variable

 
Vista:

Establecer valor en variable

Publicado por Unomásnomás (36 intervenciones) el 04/07/2008 16:51:03
Que tal amigos del foro, quisiera q me puedan ayudar ...
miren este pqño script:

DECLARE
@psServDest varchar(20),
@psBDDest varchar(20),
@sNewIdClie varchar(10)

SET @psServDest = 'MISERV'
SET @psBDDest = 'MIBD'

SET @sNewIdClie =
EXEC ('SELECT CAST(MAX(idCliente) + 1 AS VARCHAR(10)) ' +
'FROM ' + @psServDest + '.' + @psBDDest + '.dbo.clientes')

PRINT @sNewIdClie

La idea de esto es q me devuelva el maximo valor a mi variable sNewIdClie pero me sale el sgte. error :
Servidor: mensaje 156, nivel 15, estado 1, línea 10
Sintaxis incorrecta cerca de la palabra clave 'EXEC'.

No se si es posible realizar esta operacion de esta manera o no..

Estoy en un sql 2000, gracias x sus posibles respuestas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Establecer valor en variable

Publicado por pacopaz (143 intervenciones) el 04/07/2008 17:58:59
Cambia el set por lo siguiente:

EXEC ('SELECT @sNewIdClie = CAST(MAX(idCliente) + 1 AS VARCHAR(10)) ' +
'FROM ' + @psServDest + '.' + @psBDDest + '.dbo.clientes')

O por lo siguiente:

Declare @sQry varchar(500)

Set @sQry = 'SELECT @sNewIdClie = CAST(MAX(idCliente) + 1 AS VARCHAR(10)) ' +
'FROM ' + @psServDest + '.' + @psBDDest + '.dbo.clientes'
Exec (@sQry)

Espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Establecer valor en variable

Publicado por Isaias (5072 intervenciones) el 04/07/2008 18:38:16
Ahora que si trabajas con SQL SERVER 2000 o superior, cambia tu EXEC(STRING), por SP_EXECUTESQL @VAR
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Establecer valor en variable

Publicado por Unomásnomás (36 intervenciones) el 04/07/2008 19:26:49
Cuando uso tu instruccion me sale esto:

Debe declarar la variable '@sNewIdClie'.

Tmb h evisto otro con:
Exec(N' SET NOCOUNT ON; ' + @sQry ) con el mismo resultado..

Alguien por favor.. lo estoy viendo aun pero sin exito..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Establecer valor en variable

Publicado por pacopaz (143 intervenciones) el 04/07/2008 20:05:15
Mea culpa. Es correcto, te marca un error, por que la sentencia en el exec es independiente de lo que tengas en el script o sp.
La opción es esta:

CREATE TABLE #ctr
( res varchar(10) )

DECLARE @sNewIdClie varchar(10)
, @vcSQL varchar(255)

SELECT @vcSQL = 'INSERT INTO #ctr SELECT CAST(MAX(idCliente) + 1 AS VARCHAR(10)) ' + 'FROM ' + @psServDest + '.' + @psBDDest + '.dbo.clientes'
SP_EXECUTESQL @vcSQL
--EXEC (@vcSQL)

IF @@ERROR = 0
BEGIN
SELECT @sNewIdClie = res
FROM #ctr

DROP TABLE #ctr
END

Espero que esta si sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Establecer valor en variable

Publicado por Unomásnomás (36 intervenciones) el 04/07/2008 22:13:40
Bieennnn!!! te agradezco muchisimo pacopaz, es la respuesta q esperaba..
Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar