Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

respaldo .sql

Estas en el tema de respaldo .sql en el foro de SQL Server en Foros del Web. Amigos, necesito respaldar una tabla que tengo en mi pc (sql server 2000) para luego poder subirla en mi hosting a traves de comandos sql ...
  #1 (permalink)  
Antiguo 10/03/2008, 10:16
 
Fecha de Ingreso: diciembre-2002
Mensajes: 128
Antigüedad: 21 años, 4 meses
Puntos: 0
respaldo .sql

Amigos, necesito respaldar una tabla que tengo en mi pc (sql server 2000) para luego poder subirla en mi hosting a traves de comandos sql server.

Con php y mysql....Phpmyadmin al respaldar te respalda la informacion y los comandos, en cambio cuando trato de respaldar en sql server 2000 este solo guarda los datos sin los comandos para despues poder ejecutarlos en el administrador de mi hosting.


Gracias
  #2 (permalink)  
Antiguo 17/03/2008, 22:08
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Re: respaldo .sql

SQL Server no soporta ese tipo de dump, por fuerza los respaldos de sus datos son binarios (eficiencia).

Si quieres un listado de sentencias INSERT las tendrás que crear tu mismo a través del algún script del tipo:

SELECT 'INSERT INTO tabla VALUES (' + campo + ', ' + campo2 + ')'
FROM tabla
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 18/03/2008, 10:52
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Re: respaldo .sql

No lo he probado, pero me encontre este store que genera los insert's de todas las tablas.

CREATE Procedure dbo.Common_GenInsertStatement
(
@TableName sysname,
@TrimFlag bit = 0,
@Identity_Handle bit = 0
)
as
/*<summary>**************************************** ******
#author : xuchangjiang
#date : 2002-07-26
#desc : Generate "insert" script
#problem: Cannot surpport text column, later i will handle the problem by making a few changes?

#Revision History:
#DATE PROGRAMMER DESCRIPTION
#========== =========== =================================
#2002/07/31 xu.chang-jiang Handle the problem of No splitter
#2002/08/01 xu.chang-jiang Handle the problem of IDENTITY
#2002/08/05 xu.chang-jiang Handle the problem of NULL
#2002/10/17 xu.chang-jiang Handle the problem of NULL at the end of end.

**********************************************</summary>*/

set nocount on

declare @ColumnName sysname
, @ColumnType int
, @ColOrder int
, @TableID int
, @ExecStr varchar(4000)
, @HeadStr varchar(4000)
, @MaxCol int
, @ColList bit

declare @TrimHeader varchar(12)
, @TrimTail varchar(2)
, @colstat smallint
, @identity bit
, @identity_insert_on varchar(100)
, @identity_insert_off varchar(100)

--We should find out whether the result need to be trimmed.
if @TrimFlag = 1
begin
set @TrimHeader = 'LTRIM(RTRIM('
set @TrimTail = '))'
end
else
begin
set @TrimHeader = ''
set @TrimTail = ''
end

set @ColList = 1
set @identity = 0

set @TableID = object_id(@TableName)
set @HeadStr = '('
set @identity_insert_on = 'SET IDENTITY_INSERT ' + @TableName + ' ON'
set @identity_insert_off = 'SET IDENTITY_INSERT ' + @TableName + ' OFF'

select @MaxCol = max(colorder)
from syscolumns
where id = @TableID

declare ColumnList cursor scroll for
select name, xtype, colorder, colstat
from syscolumns
where id = @TableID
order by colorder

open ColumnList

fetch first
from ColumnList
into @ColumnName, @ColumnType, @ColOrder, @colstat

while @@fetch_status <> -1
begin

if @colstat = 1 and @Identity_Handle = 1
set @identity = 1

if not(@colstat = 1 and @Identity_Handle = 0)
begin
set @HeadStr = @HeadStr +
case when @ColOrder < @MaxCol then @ColumnName + ', '
else @ColumnName + ')'
end
end

fetch next
from ColumnList
into @ColumnName, @ColumnType, @ColOrder, @colstat
end

if @ColList = 1
set @ExecStr = 'SELECT ''INSERT INTO ' + @TableName + ' ' + @HeadStr + ' VALUES ('' + '
else
set @ExecStr = 'SELECT ''INSERT INTO ' + @TableName + ' VALUES ('' + '

fetch first
from ColumnList
into @ColumnName, @ColumnType, @ColOrder, @colstat

while @@fetch_status <> -1
begin

if not(@colstat = 1 and @Identity_Handle = 0)
begin
set @ExecStr = @ExecStr +
case when @ColumnType in (48,52,56,59,62,104,106,108,127) then 'convert(varchar, ' + @ColumnName + ')'
when @ColumnType in (61) then ''''''''' + replace(convert(varchar, ' + @ColumnName + ', 120), ''.'', '''') + '''''''''
else '''N'' + '''''''' + ' +@TrimHeader+'replace(' + @ColumnName + ', '''''''', '''''''''''')'+@TrimTail+' + '''''''''
end +
case when @ColOrder < @MaxCol then ','+ ''','' as Splittor'+', '
else ',' + ''')'' as Tail'+' FROM ' + @TableName
end
end

fetch next
from ColumnList
into @ColumnName, @ColumnType, @ColOrder, @colstat
end

close ColumnList
deallocate ColumnList

if @identity = 1
select @identity_insert_on

exec (@Execstr)

if @identity = 1
select @identity_insert_off



return
  #4 (permalink)  
Antiguo 18/03/2008, 11:20
 
Fecha de Ingreso: diciembre-2002
Mensajes: 128
Antigüedad: 21 años, 4 meses
Puntos: 0
Re: respaldo .sql

gracias por las respuestas, pero un poco antes lo habia resuelto con un programa...ahora no recuerdo el nombre porque lo tengo en otra estacion de trabajo...pero este programa se conecto a la base de datos sql server donde seleccione la base de datos especifica, luego la tabla y me genero toda la exportacion con los insert necesarios.

Gracias de todas maneras ;)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:56.