Ir para conteúdo
Fórum Script Brasil
  • 0

Erro no script


NIK

Pergunta

Pessoal...

Tenho o script abaixo que roda certinho, porém, ao salvar na tabela ele salva cada registro em uma linha... eu gostaria entender onde estou errado, pois parece simples e estou patinando.

Valeu

NIK

Eu queria que salvasse assim em uma linha só:

1,C00466,015136,OS12/1725,null,2012-09-26 15:31:00.000,2012-09-26 00:00:00.000,140,%%

Mas salva assim:

1,C00466,NULL,NULL,2012-09-26 15:31:00.000,2012-09-26 00:00:00.000,140,NULL

1,NULL,015136,NULL,2012-09-26 15:31:00.000,2012-09-26 00:00:00.000,140,NULL

1,NULL,NULL,OS12/1725,2012-09-26 15:31:00.000,2012-09-26 00:00:00.000,140,NULL

1,NULL,NULL,NULL,2012-09-26 15:31:00.000,2012-09-26 00:00:00.000,140,NULL

1,NULL,NULL,NULL,2012-09-26 15:31:00.000,2012-09-26 00:00:00.000,140,%%

----------------------------

DECLARE @CODCOLIGADA INT

DECLARE @CODCLIENTE VARCHAR(50)

DECLARE @NUMEROMOV VARCHAR(50)

DECLARE @LOTE VARCHAR(50)

DECLARE @PRODUTO VARCHAR(50)

DECLARE @DATA VARCHAR(50)

DECLARE @DATA1 DATETIME

DECLARE @ID INT

SET @CODCOLIGADA = 1

SET @DATA = CONVERT(VARCHAR,GETDATE(),102)+' '+CONVERT(VARCHAR(05),GETDATE(),108)

SET @DATA1 = CONVERT(VARCHAR,GETDATE(),102)

IF (SELECT COUNT(1) FROM INSERTED WHERE IDRELATORIO IN (140)) > 0

BEGIN

SELECT @ID=IDRELATORIO FROM INSERTED

SELECT @CODCLIENTE=SUBSTRING (DESCCAMPO,16,50) FROM INSERTED WHERE ORDEMCAMPO = 61

SELECT @NUMEROMOV=SUBSTRING (DESCCAMPO,16,50) FROM INSERTED WHERE ORDEMCAMPO = 62

SELECT @LOTE=SUBSTRING (DESCCAMPO,16,50) FROM INSERTED WHERE ORDEMCAMPO = 94

SELECT @PRODUTO=SUBSTRING (DESCCAMPO,16,50) FROM INSERTED WHERE ORDEMCAMPO = 105

END

BEGIN

INSERT INTO TABELA VALUES (@CODCOLIGADA, @CODCLIENTE,@NUMEROMOV,@LOTE,@DATA,@DATA1,@ID,@PRODUTO)

END

Editado por NIK
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Bom dia NIK,

Para salvar da forma que quer, você terá que concatenar os valores, dando o insert em apenas 1 coluna.

Quando faz:

INSERT INTO TABELA VALUES (@CODCOLIGADA, @CODCLIENTE,@NUMEROMOV,@LOTE,@DATA,@DATA1,@ID,@PRODUTO)
O sql entende que a separação das variáveis por vírgula, é a inserção do dado em cada coluna da tabela. Para ficar tudo em uma linha: a tabela "TABELA" deve conter apenas 1 coluna. Os dados serão concatenados e inseridos nesta coluna:
INSERT INTO TABELA (Coluna) VALUES (@CODCOLIGADA + ',' + @CODCLIENTE + ....)
Se alguma variável for do tipo INT, o sinal + tentará somar e não concatenar. Desta forma, terá que fazer a conversão do dado:
INSERT INTO TABELA (Coluna) VALUES (cast(@CODCOLIGADA AS VARCHAR())+ ',' + @CODCLIENTE + ....))

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...