消息 207,级别 16,状态 1“无效的列名称‘名称’”

新手上路,请多包涵

我试图在 SQL Server 中使用新架构删除并重新创建一个表,然后将一些测试数据插入其中以验证它是否正常工作。我有以下 DDL:

 CREATE TABLE [dbo].[Product](
    [ID] int IDENTITY(1,1) PRIMARY KEY,
    [Name] VARCHAR(100) NOT NULL,
    [Description] VARCHAR(200) NULL,
    [Modified] DATETIME NOT NULL DEFAULT(GETUTCDATE()),
    [ModifiedBy] VARCHAR(32) NOT NULL
);

和以下插入语句:

 INSERT INTO [dbo].[Product]([Name], [Description], [Modified], [ModifiedBy])
VALUES('Test', 'Description', GETUTCDATE(), 'Me');

每当我尝试插入上述行时,都会出现错误:

消息 207,级别 16,状态 1,第 38 行无效的列名称“名称”。

消息 207,级别 16,状态 1,第 38 行无效的列名称“描述”。

我知道该表在那里,因为我可以 SELECT * FROM Product 并获得一个包含正确列且没有错误的空结果集……由于某种原因我无法插入它。任何帮助将不胜感激!

原文由 Benjamin U. 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 4k
2 个回答

对我来说,您的查询看起来不错,我测试成功。

尝试添加模式名称并将所有列名放在括号内:

 CREATE TABLE [dbo].[Product](
    [ID] int IDENTITY(1,1) PRIMARY KEY,
    [Name] VARCHAR(100) NOT NULL,
    [Description] VARCHAR(200) NULL,
    [Modified] DATETIME NOT NULL DEFAULT(GETUTCDATE()),
    [ModifiedBy] VARCHAR(32) NOT NULL
);

INSERT INTO [dbo].[Product]([Name], [Description], [Modified], [ModifiedBy])
VALUES('Test', 'Description', GETUTCDATE(), 'Me');

原文由 Hadi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进