none
Problemas ao inserir registro do tipo data ou timestamp RRS feed

  • Pergunta

  • boa noite

    Eu tenho uma tabela que tem um campo do tipo date ou timestamp (retorna o mesmo problema).
    quando eu tento criar uma stored procedure utilizando o campo eu recebo a seguinte mensagem.
    *************************************************************************************************************
    Msg 273, Nível 16, Estado 1, Procedimento MANFEPED, Linha 23 [Linha de Início do Lote 12]
    Não é possível inserir um valor explícito em uma coluna de carimbo de hora. Use INSERT com uma lista de colunas para excluir a coluna de hora ou
    inserir DEFAULT na coluna de hora.
    Msg 272, Nível 16, Estado 1, Procedimento MANFEPED, Linha 42 [Linha de Início do Lote 12]
    Não é possível atualizar uma coluna de carimbo de hora.
    *************************************************************************************************************

    Eu resolvi o problema de forma contingencial definindo o campo como inteiro e inserindo o inteiro referente a data, mas preciso
    resolver isto pois fazer um select por data na minha base tornouse um defafio.

    alguem tem ideia de como eu resolvo isto.

    meu ambiente é:

    Microsoft SQL Server 2012 - 11.0.5058.0 (X64) 
        May 14 2014 18:34:29 
        
    Copyright (c) Microsoft Corporation
        Express Edition (64-bit) on Windows NT 6.3 <X64> (Build 17134: )

     

    Obrigado...

    sexta-feira, 22 de março de 2019 23:03

Respostas

Todas as Respostas

  • Olá, Amauri! 

    Pode postar para nós a sua query de INSERT da data, considerando a coluna de dados tipo DATE?


    “First do it, then do it right, then do it better.” - Addy Osmani

    sábado, 23 de março de 2019 09:23
  • Deleted
    sábado, 23 de março de 2019 14:42
  • ***********************************************************************
    Muito obrigado pelo retorno.
    Segue abaixo os scripts da procedure e da tabela
    *********************************************************************
    USE [hkscgn-de]
    GO

    /****** Object:  Table [dbo].[nfeped]    Script Date: 23/03/2019 11:43:25 ******/
    SET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO

    CREATE TABLE [dbo].[nfeped](
    [numped] [int] NOT NULL,
    [numnfe] [int] NOT NULL,
    [chvnfe] [varchar](60) NULL,
    [numpro] [bigint] NULL,
    [nomarq] [varchar](150) NULL,
    [datemi] [timestamp] NOT NULL,
    [datsai] [int] NULL,
    [horsai] [int] NULL,
    [stanfe] [int] NULL
    ) ON [PRIMARY]
    GO

    ******************************************************************
    A mensagem aparece logo que eu dou create na rocedure
    ******************************************************************
    Msg 273, Nível 16, Estado 1, Procedimento MANFEPED, Linha 23 [Linha de Início do Lote 38]
    Não é possível inserir um valor explícito em uma coluna de carimbo de hora. Use INSERT com uma lista de colunas para excluir a coluna de hora ou inserir DEFAULT na coluna de hora.
    Msg 272, Nível 16, Estado 1, Procedimento MANFEPED, Linha 42 [Linha de Início do Lote 38]
    Não é possível atualizar uma coluna de carimbo de hora.
    ****************************************************************

    USE [hkscgn-de]
    GO

    /****** Object:  StoredProcedure [dbo].[MANFEPED]    Script Date: 23/03/2019 11:44:01 ******/
    SET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO



    CREATE PROCEDURE [dbo].[MANFEPED]
    -- Add the parameters for the stored procedure here
    -- Add the parameters for the stored procedure here
          @ID1       [int]    =0
         ,@ID2       [int]    =0
         ,@Vi_Numped [int]    =0
         ,@Vi_numnfe [int]        =0
         ,@Vs_chvnfe [varchar](60)=''
         ,@Vf_numpro [bigint] =0
         ,@Vs_nomarq [varchar]=0
         ,@Vi_datemi [timestamp]=0
         ,@Vi_datsai [int]=0
         ,@Vi_horsai [int]=0
         ,@TIPO  VARCHAR(1)=''
    AS
    BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;
        -- Insert statements for procedure here
    if (@tipo = 'I')
    begin
    Insert into "nfeped" ( "numped",
                 "numnfe",
                 "chvnfe",
                 "numpro",
                 "nomarq",
                 "datemi",
                 "datsai",
       "horsai")
    Values          (@Vi_Numped
    ,@Vi_numnfe
    ,@Vs_chvnfe
    ,@Vf_numpro
    ,@Vs_nomarq
    ,@Vi_datemi
    ,@Vi_datsai
    ,@Vi_horsai)
    End
    if (@tipo = 'A')
    begin
    Update "nfeped" set    "Numped"=@Vi_Numped,
                 "numnfe"=@Vi_numnfe,
                 "chvnfe"=@Vs_chvnfe,
                 "numpro"=@Vf_numpro,
                 "nomarq"=@Vs_nomarq,
                 "datemi"=@Vi_datemi,
                 "datsai"=@Vi_datsai,
       "horsai"=@Vi_horsai
    WHERE  ("Numped"=@ID1 and "numnfe"=@ID2)
    end
    if (@tipo = 'D')
    begin
       DELETE FROM "nfeped"   WHERE  ("Numped"=@ID1 and "numnfe"=@ID2)
    end
    END

    GO



    sábado, 23 de março de 2019 14:48
  • Muito obrigado pessoal problema resolvido era isto mesmo
    sábado, 23 de março de 2019 22:06