Jump to content
Fórum Script Brasil
  • 0

Erro no script


NIK

Question

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

Edited by NIK
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652.1k
×
×
  • Create New...