繁体   English   中英

消息 207,级别 16,状态 1“无效的列名 'Name'”

[英]Msg 207, Level 16, State 1 "Invalid column name 'Name'"

我试图在 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并获得一个空结果集,其中包含正确的列并且没有错误......由于某种原因我无法插入它。 任何帮助将不胜感激!

按照马丁的回答,我做了更多的研究,他是正确的。 模式操作需要分批完成(我在删除旧表之后并在使用不同模式创建新表之后简单地添加了GO )。 可以在这里找到更详细的答案: 创建表后调用插入时出现“无效的列名”错误

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

尝试添加架构名称,并将所有列名称放在方括号内:

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');

不要做任何事情,只是尝试插入 (' ') 单引号而不是 (") 引号.. 或者如果您插入带有 ('') 单引号的数据,请尝试使用 (") 双引号,这确实对您有所帮助。

也许尝试刷新缓存。 简单的方法是按Ctrl + Shift + R

要么

Edit > IntelliSense > Refresh Local Cache

如果不起作用,则使用限定名称[dbo] .table或username.tablename等

此处更多信息: http : //msdn.microsoft.com/zh-cn/library/ms174205.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM