Cursores y variables.

04/09/2003 - 17:47 por Sebastián Sarasate | Informe spam
Puedo hacer un
DELETE FROM @tabla where @tabla.@columna in (@division)

donde @tabla y @columna son tamados del cursor y @division es una variable a
la que yo le realice un set?
si es que asi no se puede... ¿Cómo puedo hacerlo?

Preguntas similare

Leer las respuestas

#1 Fernando España
04/09/2003 - 18:55 | Informe spam
lee en el bolo lo referente a sp_executesql


"Sebastián Sarasate" wrote in message
news:%
Puedo hacer un
DELETE FROM @tabla where @ in (@division)

donde @tabla y @columna son tamados del cursor y @division es una variable


a
la que yo le realice un set?
si es que asi no se puede... ¿Cómo puedo hacerlo?


Respuesta Responder a este mensaje
#2 Sebastián Sarasate
04/09/2003 - 18:57 | Informe spam
Disculpa que sea medio lelo, pero te juro que lo leí varias veces y no logro
resolver el inconveniente. Si podés orientarme gracias y sino también
gracias por el intento.

"Fernando España" escribió en el mensaje
news:%
lee en el bolo lo referente a sp_executesql


"Sebastián Sarasate" wrote in message
news:%
> Puedo hacer un
> DELETE FROM @tabla where @ in (@division)
>
> donde @tabla y @columna son tamados del cursor y @division es una


variable
a
> la que yo le realice un set?
> si es que asi no se puede... ¿Cómo puedo hacerlo?
>
>


Respuesta Responder a este mensaje
#3 Sebastián Sarasate
04/09/2003 - 19:36 | Informe spam
Fernando:
Lo definí como vos me decís y me dá el siguiente error:
Must declare the variable '@tabla'.
A continuación te copio todo el script por si tenés ganas de revisarlo y
decirme donde se encuentra el problema. Desde ya mil gracias por todo lo que
me estas ayudando.

Declare @tabla varchar (25),
@columna varchar (35),
@division int

DECLARE @SQLString NVARCHAR (500)

DECLARE TablasCursor CURSOR FOR

SELECT
dbSW.INFORMATION_SCHEMA.KEY_COLUMN_USAGE.TABLE_NAME,
dbSW.INFORMATION_SCHEMA.KEY_COLUMN_USAGE.COLUMN_NAME
FROM dbSW.INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS,
dbSW.INFORMATION_SCHEMA.CONSTRAINT_column_usage,
dbSW.INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
dbSW.INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_NAME=dbSW.
INFORMATION_SCHEMA.CONSTRAINT_column_usage.CONSTRAINT_NAME
AND
dbSW.INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS.CONSTRAINT_NAME=dbSW.INFORMA
TION_SCHEMA.KEY_COLUMN_USAGE.CONSTRAINT_NAME
AND dbSW.INFORMATION_SCHEMA.CONSTRAINT_column_usage.TABLE_NAME='SIST_DIVI'
ORDER BY dbSW.INFORMATION_SCHEMA.CONSTRAINT_column_usage.TABLE_NAME

OPEN TablasCursor

SET @SQLString N'DELETE @tabla'
SET @division= 52


FETCH NEXT FROM TablasCursor
INTO @tabla, @columna

WHILE (@@FETCH_STATUS = 0)
begin
EXECUTE sp_executesql @SQLString
FETCH NEXT FROM TablasCursor
INTO @tabla, @columna

end

CLOSE TablasCursor
DEALLOCATE TablasCursor
Respuesta Responder a este mensaje
#4 Fernando España
04/09/2003 - 20:29 | Informe spam
declare @ejecuta nvarchar(5000)

set @ejecuta='aca puedes colocar dinamicamente todo el codigo que necesites'

a tu variable @ejecuta puedes construirle dinamicamente la sentencia

exec sp_executesql @ejecuta

Fernando España



"Sebastián Sarasate" wrote in message
news:
Disculpa que sea medio lelo, pero te juro que lo leí varias veces y no


logro
resolver el inconveniente. Si podés orientarme gracias y sino también
gracias por el intento.

"Fernando España" escribió en el mensaje
news:%
> lee en el bolo lo referente a sp_executesql
>
>
> "Sebastián Sarasate" wrote in message
> news:%
> > Puedo hacer un
> > DELETE FROM @tabla where @ in (@division)
> >
> > donde @tabla y @columna son tamados del cursor y @division es una
variable
> a
> > la que yo le realice un set?
> > si es que asi no se puede... ¿Cómo puedo hacerlo?
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida