Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Spurio

[Resolvido] Gerar Script para registros do Banco

Recommended Posts

Bom dia pessoal,

 

Ontem a tarde toda tentei postar este tópico e não deu certo, caso tenha dado certo e duplicou peço desculpas, pois meu navegador ficava dando erro, e não conseguia ver me tópico criado.

 

Pois bem, sou novo na area e estou com uma duvida, queria gerar scripts do meu banco, gerei o script da minha tabela que eu selecionei pelos seguinte passos:

 

Botão direito do mouse na tabela desejada --> script object to new window as --> create

 

Pois bem o sql gerou o script que cria aquela tabela, gostaria de saber se é possivel fazer o mesmo para os registros do banco, exemplo:

 

Eu tenho meus registros que ja foram cadastrados, gostaria de gerar um script com varios insert's para aquela tabela, não um insert só genérico, gostaria de um insert para cada registro...

 

É possivel isso? Alguem pode me ajudar??

 

Estarei muito grato a todos que colaborarem!

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Pessoal, conseguir resolver meu problema, com uma SP..

 

Pois bem agora me surgiu outro problema, testei essa SP em outras tabelas e deu certo, porém na tabela que eu estou precisando ta dando o seguinte erro:

 

 

Server: Msg 457, Level 16, State 1, Line 1

Implicit conversion of varchar value to varchar cannot be performed because the collation of the value is unresolved due to a collation conflict.

 

 

Alguem sabe me dizer o que significa isso? O que devo fazer??

 

Grato a todos que colaborarem!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Spurio,

 

este erro eh de collation entre as tabelas.

Tem que ver o collation da destino se esta igual a origem.

De um sp_help tabela para verificar o collation.

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu, deu certo agora...

 

E como na é perfeito, surgiu um novo erro ...

 

Seguinte ... Estou usando esta SP

if exists (select * from sysobjects where id = object_id(N'[dbo].[sp_CreateDataLoadScript]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[sp_CreateDataLoadScript]
GO

Create Procedure sp_CreateDataLoadScript
@TblName varchar(128)
as

--exec sp_CreateDataLoadScript 'CARACTTRECHOBackup'



create table #a (id int identity (1,1), ColType int, ColName varchar(128))

insert #a (ColType, ColName)
select case when DATA_TYPE like '%char%' then 1 else 0 end ,
COLUMN_NAME
from information_schema.columns
where TABLE_NAME = @TblName
order by ORDINAL_POSITION

if not exists (select * from #a)
begin
raiserror('No columns found for table %s', 16,-1, @TblName)
return
end

declare @id int ,
@maxid int ,
@cmd1 varchar(8000) ,
@cmd2 varchar(8000)

select @id = 0 ,
@maxid = max(id)
from #a

select @cmd1 = 'select '' insert ' + @TblName + ' ( '
select @cmd2 = ' + '' select '' + '
while @id < @maxid
begin
select @id = min(id) from #a where id > @id

select @cmd1 = @cmd1 + ColName + ','
from #a
where id = @id

select @cmd2 = @cmd2
+ ' case when ' + ColName + ' is null '
+ ' then ''null'' '
+ ' else '
+   case when ColType = 1 then  ''''''''' + ' + ColName + ' + ''''''''' else 'convert(varchar(20),' + ColName + ')' end
+ ' end + '','' + '
from #a
where id = @id
end


select @cmd1 = left(@cmd1,len(@cmd1)-1) + ' ) '' '
select @cmd2 = left(@cmd2,len(@cmd2)-8) + ' from ' + @tblName

select '/*' + @cmd1 + @cmd2 + '*/'

exec (@cmd1 + @cmd2)
drop table #a

go

Depois executo a procedure com o nome da tabela, parte do código que esta comentado

 

e ele me retorna o Script, porém ele não retorna completo ...

 

Exemplo

 

insert CARACTTRECHO ( cdLogradouro,cdTrecho,cdEletricidade,cdIluminacao,qtPistas,cdAgua,cdTelefone,cdT

ransporte,cdPasseio,cdMeioFio,cdArborizacao,cdSarjeta,vlLargura,cdEsgoto,cdLimpez

a,inCoordInicioX,inCoordInicioY,inCoordFimX,inCoordFimY,vlLimiteDe,vlLim

 

Intenderam? Falta o resto do insert ...

 

Acredito eu que seja alguma coisa que está limitando a procedure... Eu consegui essa procedure na internet em outro forum, porém não me lembro aonde, como eu disse no inicio meu navegador ta dando erros, ele deu erro e fexo tudo .. Então não consegui pergunta pro cara se o problema é esse mesmo ..

 

Alguem pode me ajudar?? Alguem sabe pq eu não consigo pegar o comando inteiro??

 

grato a quem colaborar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Spurio,

 

olha a coincidencia: a qtde de caracteres é de 256. Se você estiver visualizando isso no query analizer, ele vai trazer isso msm. é uma limitacao visual.

 

Altere estes dois caras aki para text só para garantir.

@cmd1 varchar(8000)

@cmd2 varchar(8000)

 

No QA, vá em TOOLS --> RESULTS --> e olhe a coluna: maximum characters per column:

Altere o valor http://forum.imasters.com.br/public/style_emoticons/default/devil.gif

Se nao for em tools,eh em um menu, eu nao tenho o SQL2000 aki no meu pc =\

 

Pq nao grava isso em uma tabela fisica para depois você pegar o resultado?! Ou entao salvar em um txt.

 

Uma ideia ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu cara, deu certoo..

 

Muitoo obrigadoo mesmo meu caro, aproveitando a sua boa vontade ...

 

 

Eu tinha gerado um script da tabela tambem, pq eu preciso coloca tudo isso em linhas de código em um sistema que estou desenvolvendo, ou tentando desenvolver..

 

ai fiz o seguinte:

botão direito do mouse na tabela desejada -->script object to new window as --> create

 

Ai gero o script da tabela, fui roda o cara agora para ver se funcionava e não deu certo, tipo eu mudei o nome da antiga tabela para criar a mesma tabela denovo e não deu certo...

 

Fiz algum procedimento errado ou o script que o sql gero pra mim ta errado??

 

Segue abaixo o SCRIPT

 

CREATE TABLE [CARACTTRECHO] (
	[cdLogradouro] [int] NOT NULL ,
	[cdTrecho] [varchar] (6) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
	[cdEletricidade] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[cdIluminacao] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[qtPistas] [smallint] NULL ,
	[cdAgua] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[cdTelefone] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[cdTransporte] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[cdPasseio] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[cdMeioFio] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[cdArborizacao] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[cdSarjeta] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[vlLargura] [money] NULL ,
	[cdEsgoto] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[cdLimpeza] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[inCoordInicioX] [varchar] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[inCoordInicioY] [varchar] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[inCoordFimX] [varchar] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[inCoordFimY] [varchar] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[vlLimiteDe] [int] NULL ,
	[vlLimiteAte] [int] NULL ,
	[cdAcessibilidade] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[cdDrenagem] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[cdTipoPavimen] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[cdCategoriaVia] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[vlLarguraPasseioD] [money] NULL ,
	[vlLarguraPasseioE] [money] NULL ,
	[cdColetaLixo] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[idLado] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
	CONSTRAINT [chCaractTrecho] PRIMARY KEY  CLUSTERED 
	(
		[cdLogradouro],
		[cdTrecho],
		[idLado]
	) WITH  FILLFACTOR = 90  ON [PRIMARY] 
) ON [PRIMARY]
GO

Se puder dar mais uma mão ai ficarei mto grato!!

 

Até agora muito agradecido pela sua ajuda!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza, o erro agora era eu mesmo, consegui resolve jus2ka

 

Um abraço cara... valeu pela compreensão e pela força ae!!!

 

RESOLVIDO

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com relacao a ajuda, estamos aki pra isso hehehee

Com relacao aos posts duplicados a gente da um jeito http://forum.imasters.com.br/public/style_emoticons/default/devil.gif

 

Agora, o seu script esta correto, que erro que ele gera?

 

 

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.