Sentencia en Sp

20/06/2008 - 02:55 por Victor M | Informe spam
Buenas tardes la idea que tengo es hacer un estore procedure donde le pase
por parametro el nobre de una db y despues en el mismo hacer algo como lo
sig

DECLARE @DB CHAR(12),
@SQL VARCHAR(500)
SET @DB='PUNTOX'--seria el parametro que recibo
SET @SQL='SELECT * FROM '+@DB+'.DBO.ORDEN'
DECLARE CURSORX CURSOR FOR EXECUTE(@SQL)
Pero no funciona existe alguna forma de hacer lo que quiero
Saludos y gracias anticipadas
Victor M

Preguntas similare

Leer las respuestas

#1 Salvador Ramos
20/06/2008 - 18:21 | Informe spam
Hola,

No se puede hacer lo que indicas de esa forma, lo que puedes hacer es
utilizar sql dinámico, aunque antes te recomiendo que leas este artículo de
Erland Sommarskog's:
http://reenviados.blogspot.com/2007...nmico.html
Pd. no he encontrado el link original, creo que este link es una copia de
dicho artículo

Un saludo
Salvador Ramos
Solid Quality Mentors (http://www.solidq.com)

www.helpdna.net (información sobre SQL Server y Microsoft .Net)
Visita mi nuevo blog: www.sqlserversi.com


"Victor M" escribió en el mensaje
news:
Buenas tardes la idea que tengo es hacer un estore procedure donde le pase
por parametro el nobre de una db y despues en el mismo hacer algo como lo
sig

DECLARE @DB CHAR(12),
@SQL VARCHAR(500)
SET @DB='PUNTOX'--seria el parametro que recibo
SET @SQL='SELECT * FROM '+@DB+'.DBO.ORDEN'
DECLARE CURSORX CURSOR FOR EXECUTE(@SQL)
Pero no funciona existe alguna forma de hacer lo que quiero
Saludos y gracias anticipadas
Victor M


Respuesta Responder a este mensaje
#2 Jesús López
20/06/2008 - 18:47 | Informe spam
Antes de nada yo me platearía si realmente es necesario el uso de cursores.
¿No puedes hacer eso sin cursores?.

De todas maneras ahí va el ejemplo:

DECLARE @sql nvarchar(4000)
DECLARE @db nvarchar(50)
SET @db = N'Northwind'
DECLARE @c CURSOR
SET @sql = '
DECLARE c CURSOR FOR
SELECT CategoryName FROM ' + @db + '.dbo.Categories
OPEN c
SET @c = c'
EXEC sp_executesql @sql, N'@c CURSOR OUT', @c OUT
FETCH @c
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH @c
END
CLOSE @c
DEALLOCATE @c

Saludos:

Jesús López
www.soldiq.com



"Victor M" escribió en el mensaje
news:
Buenas tardes la idea que tengo es hacer un estore procedure donde le pase
por parametro el nobre de una db y despues en el mismo hacer algo como lo
sig

DECLARE @DB CHAR(12),
@SQL VARCHAR(500)
SET @DB='PUNTOX'--seria el parametro que recibo
SET @SQL='SELECT * FROM '+@DB+'.DBO.ORDEN'
DECLARE CURSORX CURSOR FOR EXECUTE(@SQL)
Pero no funciona existe alguna forma de hacer lo que quiero
Saludos y gracias anticipadas
Victor M


Respuesta Responder a este mensaje
#3 Victor M
21/06/2008 - 00:12 | Informe spam
Gracias a ambos por su ayuda
ya lo pude hacer funcionar
"Victor M" escribió en el mensaje
news:
Buenas tardes la idea que tengo es hacer un estore procedure donde le pase
por parametro el nobre de una db y despues en el mismo hacer algo como lo
sig

DECLARE @DB CHAR(12),
@SQL VARCHAR(500)
SET @DB='PUNTOX'--seria el parametro que recibo
SET @SQL='SELECT * FROM '+@DB+'.DBO.ORDEN'
DECLARE CURSORX CURSOR FOR EXECUTE(@SQL)
Pero no funciona existe alguna forma de hacer lo que quiero
Saludos y gracias anticipadas
Victor M


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