Sql 插入数据时列名无效
我在本地安装了SQLExpress,并使用SQLServerManagementStudio访问它 我在SSMS中创建了一个新的数据库BirdSite,其中包含一个表TMasterCountry,其中包含以下列:Sql 插入数据时列名无效,sql,sql-server,ssms,Sql,Sql Server,Ssms,我在本地安装了SQLExpress,并使用SQLServerManagementStudio访问它 我在SSMS中创建了一个新的数据库BirdSite,其中包含一个表TMasterCountry,其中包含以下列: Id (int) CountryName (varchar(50)) 其中Id是主自动递增键 当我使用脚本表作为。。。在对象资源管理器中的选项中,我可以使用以下SQL语句查看空表: USE [BirdSite] GO SELECT [Id] ,[CountryName]
Id (int)
CountryName (varchar(50))
其中Id是主自动递增键
当我使用脚本表作为。。。在对象资源管理器中的选项中,我可以使用以下SQL语句查看空表:
USE [BirdSite]
GO
SELECT [Id]
,[CountryName]
FROM [dbo].[TMasterCountry]
GO
没有任何问题
但是,使用相同的选项尝试插入一些数据时,会出现以下SQL:
USE [BirdSite]
GO
INSERT INTO [dbo].[TMasterCountry]
([CountryName])
VALUES
(<CountryName, varchar(50),>)
GO
但是,当我尝试运行代码时,会出现以下错误:
味精207,16级,状态1,第4行
列名“CountryName”无效
信息110,15级,状态1,第4行
INSERT语句中的列少于values子句中指定的值。values子句中的值数必须与INSERT语句中指定的列数匹配
有人知道这里发生了什么吗?该列显然确实存在,因为我可以很好地选择数据
在回答了一些类似的问题之后,我尝试重新启动SSMS,并尝试刷新本地Intellisense缓存,但运气不好。我还尝试将CountryName括在方括号中,但结果相同。将其更改为:
USE [BirdSite]
GO
INSERT INTO [dbo].[TMasterCountry]
([CountryName])
VALUES
('test')
GO
指列的名称及其数据类型。语法错误;应该是
INSERT INTO [dbo].[TMasterCountry]
([CountryName])
VALUES
('test')
您需要将之间的整个内容替换为以下值:
INSERT INTO [dbo].[TMasterCountry]
([CountryName])
VALUES
('test')
此外,除非您已将ID列指定为自动递增标识,否则SQL中也必须提供该标识。请参阅,它已经是一个标识列,如问题中所述:其中ID是主要的自动递增键。请注意。我错过了。
INSERT INTO [dbo].[TMasterCountry]
([CountryName])
VALUES
('test')