[英]Msg 207, Level 16, State 1, Line 3 Invalid column name 'VSERV'
[英]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.