Usar base de datos desde un store procedure

13/07/2004 - 20:37 por Agustin | Informe spam
Tengo una tabla en donde estan todas las bases de datos,
mi problema es el siguiente utilizo un procedimiento
almacenado y un cursor para leer dicha tabla, una vez
leido la base de datos necesito usar un USE database pero
me da un error 154, que dice que no es pocible usar el
USE dentro de un store procedure; si alguien me puede
ayudar a solucionar este problema le agradeceria un
monton.


Saludos,
Agustin

Preguntas similare

Leer las respuestas

#1 Cesar Garcia
13/07/2004 - 21:22 | Informe spam
para q quieres usar otra base de datos?

describe un poco mas la situacion de tu problema

"Agustin" escribió en el mensaje
news:2cb7101c46908$816e4980$
Tengo una tabla en donde estan todas las bases de datos,
mi problema es el siguiente utilizo un procedimiento
almacenado y un cursor para leer dicha tabla, una vez
leido la base de datos necesito usar un USE database pero
me da un error 154, que dice que no es pocible usar el
USE dentro de un store procedure; si alguien me puede
ayudar a solucionar este problema le agradeceria un
monton.


Saludos,
Agustin
Respuesta Responder a este mensaje
#2 Agustin
13/07/2004 - 21:45 | Informe spam
Basicamenete es para una migracion de datos,
me dieron una tabla con la informacion de profesores de
una Universidad pero cada facultad de la universidad se
encuentra en una base de datos diferente por ejemplo:
Faculta dDB
Sistemas Sis2004
Electrica Elect2004

entonces dependiendo de a que facultad pertenesca el
profesor necesito migrar sus datos a la base de su
facultad, teniendo en cuenta que en el archivo que me
dieron esta el nombre de la base de datos

Gracias de antemano por tu ayuda.

Saludos,
Agustin.

para q quieres usar otra base de datos?

describe un poco mas la situacion de tu problema

"Agustin" escribió en el mensaje
news:2cb7101c46908$816e4980$
Tengo una tabla en donde estan todas las bases de




datos,
mi problema es el siguiente utilizo un procedimiento
almacenado y un cursor para leer dicha tabla, una vez
leido la base de datos necesito usar un USE database




pero
me da un error 154, que dice que no es pocible usar el
USE dentro de un store procedure; si alguien me puede
ayudar a solucionar este problema le agradeceria un
monton.


Saludos,
Agustin




.

Respuesta Responder a este mensaje
#3 Cesar Garcia
13/07/2004 - 22:02 | Informe spam
bueno... si estas utilizando inserts o selects puedes hacer referencia a los
objetos de las bases de datos con su nombre completo

Servidor.Database.owner.tabla

quizas esto resuelva tu problema para que no uses el USE

"Agustin" escribió en el mensaje
news:2c34a01c46911$fcf10170$
Basicamenete es para una migracion de datos,
me dieron una tabla con la informacion de profesores de
una Universidad pero cada facultad de la universidad se
encuentra en una base de datos diferente por ejemplo:
Faculta dDB
Sistemas Sis2004
Electrica Elect2004

entonces dependiendo de a que facultad pertenesca el
profesor necesito migrar sus datos a la base de su
facultad, teniendo en cuenta que en el archivo que me
dieron esta el nombre de la base de datos

Gracias de antemano por tu ayuda.

Saludos,
Agustin.

para q quieres usar otra base de datos?

describe un poco mas la situacion de tu problema

"Agustin" escribió en el mensaje
news:2cb7101c46908$816e4980$
Tengo una tabla en donde estan todas las bases de




datos,
mi problema es el siguiente utilizo un procedimiento
almacenado y un cursor para leer dicha tabla, una vez
leido la base de datos necesito usar un USE database




pero
me da un error 154, que dice que no es pocible usar el
USE dentro de un store procedure; si alguien me puede
ayudar a solucionar este problema le agradeceria un
monton.


Saludos,
Agustin




.

Respuesta Responder a este mensaje
#4 Anonimo
13/07/2004 - 22:27 | Informe spam
Muchas Gracias Cesar
me pasaron este datos por si te sirve

Puedes hacer de todo
desde un shrink de la base de datos como por ejemplo (en
master):

CREATE PROCEDURE uprc_ShrinkDB
@dbid tinyint
AS BEGIN
Declare @db as varchar(50),
@dbfile as varchar(50);
DECLARE dbfls CURSOR FOR
Select Rtrim(sysdatabases.name), Rtrim
(sysaltfiles.name)
From sysdatabases,
sysaltfiles
Where sysdatabases.dbid = sysaltfiles.dbid and
sysaltfiles.fileid = 2 and
sysdatabases.dbid >= @dbid;
OPEN dbfls;
FETCH NEXT FROM dbfls INTO @db, @dbfile;
While ( @@FETCH_STATUS = 0 ) BEGIN
Exec ('USE ' + @db + '; CHECKPOINT;');
Exec ('USE ' + @db + '; CHECKPOINT;');
Exec ('USE ' + @db + '; CHECKPOINT;');
DBCC SHRINKDATABASE (@db, 0 , TRUNCATEONLY);
BACKUP LOG @db WITH TRUNCATE_ONLY;
Exec ('USE ' + @db + '; DBCC SHRINKFILE (''' + @dbfile
+ ''',
EMPTYFILE);');
FETCH NEXT FROM dbfls INTO @db, @dbfile;
End;
CLOSE dbfls;
DEALLOCATE dbfls;
END;

bueno... si estas utilizando inserts o selects puedes


hacer referencia a los
objetos de las bases de datos con su nombre completo

Servidor.Database.owner.tabla

quizas esto resuelva tu problema para que no uses el USE

"Agustin" escribió


en el mensaje
news:2c34a01c46911$fcf10170$
Basicamenete es para una migracion de datos,
me dieron una tabla con la informacion de profesores de
una Universidad pero cada facultad de la universidad se
encuentra en una base de datos diferente por ejemplo:
Faculta dDB
Sistemas Sis2004
Electrica Elect2004

entonces dependiendo de a que facultad pertenesca el
profesor necesito migrar sus datos a la base de su
facultad, teniendo en cuenta que en el archivo que me
dieron esta el nombre de la base de datos

Gracias de antemano por tu ayuda.

Saludos,
Agustin.

para q quieres usar otra base de datos?

describe un poco mas la situacion de tu problema

"Agustin" escribió en el mensaje
news:2cb7101c46908$816e4980$
Tengo una tabla en donde estan todas las bases de




datos,
mi problema es el siguiente utilizo un procedimiento
almacenado y un cursor para leer dicha tabla, una vez
leido la base de datos necesito usar un USE database




pero
me da un error 154, que dice que no es pocible usar el
USE dentro de un store procedure; si alguien me puede
ayudar a solucionar este problema le agradeceria un
monton.


Saludos,
Agustin




.





.

Respuesta Responder a este mensaje
#5 Miguel Egea
13/07/2004 - 23:22 | Informe spam
Mucho cuidado con ese procedimiento, hace backup del log con la cláusula
with truncate only, si después no haces una copia de seguridad completa no
podrás restaurar tu servidor al punto de fallo, en definitiva es bastante
peligroso


-

Miguel Egea Gómez
Webmaster de PortalSQL

(lo de online sobra)
Brigada Anti-Cursores
Microsoft SqlServer M.V.P.



escribió en el mensaje
news:2c02a01c46917$cfb44a40$
Muchas Gracias Cesar
me pasaron este datos por si te sirve

Puedes hacer de todo
desde un shrink de la base de datos como por ejemplo (en
master):

CREATE PROCEDURE uprc_ShrinkDB
@dbid tinyint
AS BEGIN
Declare @db as varchar(50),
@dbfile as varchar(50);
DECLARE dbfls CURSOR FOR
Select Rtrim(sysdatabases.name), Rtrim
(sysaltfiles.name)
From sysdatabases,
sysaltfiles
Where sysdatabases.dbid = sysaltfiles.dbid and
sysaltfiles.fileid = 2 and
sysdatabases.dbid >= @dbid;
OPEN dbfls;
FETCH NEXT FROM dbfls INTO @db, @dbfile;
While ( @@FETCH_STATUS = 0 ) BEGIN
Exec ('USE ' + @db + '; CHECKPOINT;');
Exec ('USE ' + @db + '; CHECKPOINT;');
Exec ('USE ' + @db + '; CHECKPOINT;');
DBCC SHRINKDATABASE (@db, 0 , TRUNCATEONLY);
BACKUP LOG @db WITH TRUNCATE_ONLY;
Exec ('USE ' + @db + '; DBCC SHRINKFILE (''' + @dbfile
+ ''',
EMPTYFILE);');
FETCH NEXT FROM dbfls INTO @db, @dbfile;
End;
CLOSE dbfls;
DEALLOCATE dbfls;
END;

bueno... si estas utilizando inserts o selects puedes


hacer referencia a los
objetos de las bases de datos con su nombre completo

Servidor.Database.owner.tabla

quizas esto resuelva tu problema para que no uses el USE

"Agustin" escribió


en el mensaje
news:2c34a01c46911$fcf10170$
Basicamenete es para una migracion de datos,
me dieron una tabla con la informacion de profesores de
una Universidad pero cada facultad de la universidad se
encuentra en una base de datos diferente por ejemplo:
Faculta dDB
Sistemas Sis2004
Electrica Elect2004

entonces dependiendo de a que facultad pertenesca el
profesor necesito migrar sus datos a la base de su
facultad, teniendo en cuenta que en el archivo que me
dieron esta el nombre de la base de datos

Gracias de antemano por tu ayuda.

Saludos,
Agustin.

para q quieres usar otra base de datos?

describe un poco mas la situacion de tu problema

"Agustin" escribió en el mensaje
news:2cb7101c46908$816e4980$
Tengo una tabla en donde estan todas las bases de




datos,
mi problema es el siguiente utilizo un procedimiento
almacenado y un cursor para leer dicha tabla, una vez
leido la base de datos necesito usar un USE database




pero
me da un error 154, que dice que no es pocible usar el
USE dentro de un store procedure; si alguien me puede
ayudar a solucionar este problema le agradeceria un
monton.


Saludos,
Agustin




.





.

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