【问题标题】:Stored procedure cannot insert into column name Timestamp存储过程无法插入列名时间戳
【发布时间】:2021-03-22 03:56:44
【问题描述】:

我正在尝试编写一个存储过程以插入到email 表中。在我的email 表中,我有一个名为timestamp 的时间创建列。我不知道时间戳是一个 SQL 关键字。我将如何解决这个问题?谢谢(我不想更改列名,因为我有很多 SQL 语句要编辑)

CREATE PROCEDURE [dbo].[btbSe]
    @SenderId int,
    @SqlReceiverId int,
    @EmailSubject varchar(max),
    @EmailBody varchar(max),
    @DateTime varchar(50)
AS
    INSERT INTO Emails (SenderId, ReceiverId, EmailSubject, EmailBody, Timestamp) 
    VALUES (@SenderId, @SqlReceiverId, @EmailSubject, @EmailBody, @DateTime, GETDATE())
    RETURN 0

【问题讨论】:

  • 是的,当然,理想情况下,您在 SQL Server 中创建的对象不应与保留关键字命名相同 - 但实际上,很多人都这样做。只需将 Timestamp 这个词放在方括号中 - 即。 [时间戳] - 你会没事的
  • 顺便说一句,你还有很多 SQL 语句要编辑.....所以也许改变列名是一个值得练习的练习。
  • 感谢您的帮助,谢谢!

标签: sql stored-procedures timestamp sql-insert


【解决方案1】:

您需要将这些列括在双引号中,如下所示:

..
..
INSERT INTO Emails (SenderId, ReceiverId, EmailSubject, EmailBody, "Timestamp") 
VALUES
..
..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 1970-01-01
    • 2013-07-03
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多