SQL SERVER 2008 Inserindo dados em uma tabela.
30/06/2015
0
tenho uma tabela com a seguinte estrutura
CREATE TABLE PAT_TIPO_ENTRADA (
TPE_COD INT IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
TPE_NOME VARCHAR(100),
TPE_NUMERO VARCHAR(15),
TPE_POSSE CHAR(1),
TPE_DOACAO CHAR(1)
)
e nela já existe os dados vou dar como exemplo : 1,FTC,2,S,N
o negocio é o seguinte, eu quero dar um insert nessa mesma tabela só que o insert tem que verificar se já existe essa informação na tabela e se não existe ele inseri os dados, caso exista ele não faz nada.
Cleiton Conceição
Post mais votado
01/07/2015
--Cria Tabela CREATE TABLE TbTeste (id int, nome varchar(10), tel varchar(10)); GO --Declara variáveis Declare @id int, @nome varchar(10), @tel varchar(10) --Seta os valores do insert nas variáveis set @id = '1' set @nome = 'Cleiton' set @tel = '11111111' --Busca se um valor já existe (estou setando isso na cláusula where) If Exists (Select * from TbTeste where id = @id or nome=@nome or tel = @tel ) begin --Se o valor existir, exibe mensagem print ('Já existe um valor cadastrado') end else begin --Se o valor não existir, realiza o insert Insert into TbTeste (id,nome,tel) values (@id,@nome,@tel) select * from TbTeste end
Eu já coloquei a explicação no próprio código. Se precisar de mais explicações, avisa que tento ser mais claro.
Randrade
Mais Posts
01/07/2015
Mariana Carvalho
01/07/2015
Cleiton Conceição
01/07/2015
Randrade
Todos os campos devem ser diferentes? Nome, número, posse e doação?
CREATE TABLE PAT_TIPO_ENTRADA ( TPE_COD INT IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, TPE_NOME VARCHAR(100), TPE_NUMERO VARCHAR(15), TPE_POSSE CHAR(1), TPE_DOACAO CHAR(1) )
P.S: Utilize a tag code </>, ao postar algum código em suas perguntas ou respostas.
01/07/2015
Mariana Carvalho
02/07/2015
Cleiton Conceição
só tem um porém eu quero inserir vários dados e não to conseguindo.
tipo assim.
set @TPE_NOME = 'c,''cc'
set @TPE_NUMERO = '4','5'
set @TPE_POSSE = 'rs,''t'
set @TPE_DOACAO='k','o'
ta dando erro de sintaxe.
03/07/2015
Lucas Ramos
insert into PAT_TIPO_ENTRADA ( TPE_NOME , TPE_NUMERO, TPE_POSSE, TPE_DOACAO) select a.TPE_NOME , a.TPE_NUMERO, a.TPE_POSSE, a.TPE_DOACAO from TABELA_DE_ONDE_VEM_OS_DADOS a left JOIN PAT_TIPO_ENTRADA b on a.TPE_NOME = b.TPE_NOME and a.TPE_NUMERO = b.TPE_NUMERO and a.TPE_POSSE = b.TPE_POSSE and a.TPE_DOACAO = b.TPE_DOACAO where b.TPE_COD is null
03/07/2015
Cleiton Conceição
03/07/2015
Lucas Ramos
insert into [192.168.0.1].[BANCO_DE_DADOS].[dbo].[PAT_TIPO_ENTRADA] ( TPE_NOME , TPE_NUMERO, TPE_POSSE, TPE_DOACAO) select a.TPE_NOME , a.TPE_NUMERO, a.TPE_POSSE, a.TPE_DOACAO from TABELA_DE_ONDE_VEM_OS_DADOS a left JOIN [192.168.0.1].[BANCO_DE_DADOS].[dbo].[PAT_TIPO_ENTRADA] b on a.TPE_NOME = b.TPE_NOME and a.TPE_NUMERO = b.TPE_NUMERO and a.TPE_POSSE = b.TPE_POSSE and a.TPE_DOACAO = b.TPE_DOACAO where b.TPE_COD is null
se for na mesma instância
insert into [BANCO_DE_DADOS]..[PAT_TIPO_ENTRADA] ( TPE_NOME , TPE_NUMERO, TPE_POSSE, TPE_DOACAO) select a.TPE_NOME , a.TPE_NUMERO, a.TPE_POSSE, a.TPE_DOACAO from TABELA_DE_ONDE_VEM_OS_DADOS a left JOIN [BANCO_DE_DADOS]..[PAT_TIPO_ENTRADA] b on a.TPE_NOME = b.TPE_NOME and a.TPE_NUMERO = b.TPE_NUMERO and a.TPE_POSSE = b.TPE_POSSE and a.TPE_DOACAO = b.TPE_DOACAO where b.TPE_COD is null
04/07/2015
Randrade
04/07/2015
Cleiton Conceição
no local onde vai ser executado o código não tenho acesso. e n sei se existe esses dados na tabela.
o exemplo de lucas não me ajuda pq ele quer pegar os dados de uma tabela para outra e verificar se existe a informação ou não.
Clique aqui para fazer login e interagir na Comunidade :)