SENTENCIA SQL

08/07/2004 - 11:52 por Pika | Informe spam
hola a todos:
Una preguntita sobrer sql server:
Es posible crear una sentencia sql donde se cogan todos los registros de una
tabla y se puedan guardar en un fichero .txt??
Y al reves, es decir, llenar un tabla con los datos que haya en un .txt??
gracias

Preguntas similare

Leer las respuestas

#1 Carlos Sacristan
08/07/2004 - 12:05 | Informe spam
Echa un vistazo a los DTS (Data Transformation Services) o a la utilidad
de línea de comando bcp en los BOL, están justamente para eso


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Pika" escribió en el mensaje
news:
hola a todos:
Una preguntita sobrer sql server:
Es posible crear una sentencia sql donde se cogan todos los registros de


una
tabla y se puedan guardar en un fichero .txt??
Y al reves, es decir, llenar un tabla con los datos que haya en un .txt??
gracias



Respuesta Responder a este mensaje
#2 Emilio Boucau
08/07/2004 - 14:25 | Informe spam
Hola,

aca te paso codigo para exportar tablas a TXT.

INICIO ==
/*
Exporta la / las tablas de la base de datos especificada a archivos .TXT
La ruta especificada en @path es SIEMPRE desde el punto de vista del
server.

Ejemplos:
1) exportar TODAS las tablas de una base determinada: spu_exportar_tabla
'TODAS', 'BaseDeDatos'
2) exportar TODAS las tablas de la base actual: spu_exportar_tabla
3) exportar UNA tabla en particular de una base: spu_exportar_tabla
'NombreTabla', 'BaseDeDatos'
4) exportar UNA tabla en particular de la base actual: spu_exportar_tabla
'NombreTabla'
*/
DROP PROCEDURE spu_exportar_tabla
GO

CREATE PROCEDURE spu_exportar_tabla
@tabla varchar( 30 ) = "TODAS" ,
@database varchar( 30 ) = NULL

AS

SET NOCOUNT ON

DECLARE @comando varchar( 125 )
DECLARE @cantidad smallint
DECLARE @path varchar( 50 )

SELECT @cantidad = 0
SELECT @path = "E:\BUREAU_VARIOS\TEMPORAL"

-
-
IF @database IS NULL
BEGIN
SELECT @database = DB_NAME()
END
ELSE
BEGIN
EXEC ( 'USE ' + @database )
END

-
-
IF ( @tabla = "TODAS" )
BEGIN

DECLARE cNombres CURSOR FOR
SELECT [name] from sysobjects where type = 'U'

OPEN cNombres

FETCH NEXT FROM cNombres INTO @tabla
WHILE ( @@fetch_status <> -1 )
BEGIN
IF ( @@fetch_status = -2 )
BEGIN
FETCH NEXT FROM cNombres INTO @tabla
CONTINUE
END

PRINT 'Exportando tabla: ' + @tabla

-
-
specify terminator after '-t', '-T' is used for trusted connection,
SELECT @comando = 'bcp ' + @database + '..' + @tabla + ' out ' + @path +
'\' + @tabla + '.txt -c -t,' -- -T'

EXEC master..xp_cmdshell @comando--, NO_OUTPUT

SELECT @cantidad = @cantidad + 1
FETCH NEXT FROM cNombres INTO @tabla
END

DEALLOCATE cNombres

-
-
SELECT CONVERT( varchar( 10 ), @cantidad ) + ' tablas de la base de datos '
+ @database + ' fueron exportadas.'

END Del IF

ELSE
BEGIN
if exists ( select 1
from sysobjects
where id = object_id( @tabla ) and type = 'U' )
BEGIN

PRINT 'Exportando la tabla: ' + @tabla

-
-
specify terminator after '-t', '-T' is used for trusted connection,
SELECT @comando = 'bcp ' + @database + '..' + @tabla + ' out ' + @path +
'\' + @tabla + '.txt -c -t,' -- -T'
EXEC master..xp_cmdshell @comando --, NO_OUTPUT

-
-
SELECT ' La tabla ' + @tabla + ' de la base de datos ' + @database +
' fue exportada.'

END -- Del IF del EXISTS

ELSE
BEGIN

-
-
SELECT ' La tabla ' + @tabla + ' de la base de datos ' + @database +
' no existe.'

END

END

FIN ==

Saludos !

Emilio Boucau
Buenos Aires - Argentina
http://www.portalsql.com
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida