首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >插入到SQL中的新表会导致错误

插入到SQL中的新表会导致错误
EN

Stack Overflow用户
提问于 2019-08-03 15:52:24
回答 3查看 48关注 0票数 2

为什么我会出错?

代码语言:javascript
复制
--Q1    

CREATE table  Aorders (
 Id  INT IDENTITY NOT NULL,
 CreatedDate Date NOT NULL,
 BillingCountry varchar Not Null,
 MerchId int Not null,
 OrderStatus varchar Not null,
);

--Q2    

select * from Aorders

--Q3 edited as suggested here but still get an error 

在Aorders (CreatedDate、BillingCountry、MerchId、OrderStatus)中插入值(“2001-01-01”、“以色列”、“5”、“批准”);

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-08-03 16:14:51

您必须定义varchar列的长度,如:

代码语言:javascript
复制
CREATE table  Aorders (
 Id  INT IDENTITY NOT NULL,
 CreatedDate Date NOT NULL,
 BillingCountry varchar(100) Not Null,
 MerchId int Not null,
 OrderStatus varchar(100) Not null,
); 

来自char和varchar (Transact-SQL)

当在数据定义或变量声明语句中未指定n时,默认长度为1。

票数 2
EN

Stack Overflow用户

发布于 2019-08-03 15:56:29

在执行insert时,最佳实践是显式列出所有列,并对日期使用标准格式:

代码语言:javascript
复制
INSERT INTO Aorders (CreatedDate, BillingCountry, MerchId, OrderStatus)
    VALUES ('2001-01-01', 'Israel', 5 ,'Approved');

您的具体错误是因为您在VALUES()列表中有四个值,但是表中有五个列。

票数 1
EN

Stack Overflow用户

发布于 2019-08-03 15:59:23

您没有正确地执行查询。我认为您希望ID自动递增,但您还没有声明。作出以下修改:

代码语言:javascript
复制
CREATE table Aorders ( Id INT IDENTITY NOT NULL
                      ,CreatedDate Date NOT NULL
                      ,BillingCountry varchar Not Null
                      ,MerchId int Not null
                      ,OrderStatus varchar Not null);

现在输入您插入的查询。并确保文档中适当的日期格式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57339876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档