首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server不允许日期为NULL,即使在创建时提到为null

Server不允许日期为NULL,即使在创建时提到为null
EN

Stack Overflow用户
提问于 2014-10-23 05:17:55
回答 2查看 2.2K关注 0票数 1

我正在尝试为库管理系统创建一个表,我希望我的date_in在某些情况下为null。当我试图给出null时,它给我的错误是:

Msg 4864,16级,状态1,第7行 第8行第7列(date_in)的大容量加载数据转换错误(指定代码页的类型错配或无效字符)。 Msg 4864,16级,状态1,第7行 第9行第7列(date_in)的大容量加载数据转换错误(指定代码页的类型错配或无效字符)。 Msg 4864,16级,状态1,第7行 第10行第7列(date_in)的大容量加载数据转换错误(指定代码页的类型错配或无效字符)。 第11行第7列(date_in)的Msg 4864、级别16、状态1、第7行大容量加载数据转换错误(指定代码页的类型错配或无效字符)。 Msg 4864,16级,状态1,第7行 第12行第7列(date_in)的大容量加载数据转换错误(指定代码页的类型错配或无效字符)。 Msg 4864,16级,状态1,第7行 第13行第7列(date_in)的大容量加载数据转换错误(指定代码页的类型错配或无效字符)。

我已经明确提到该属性取空,但它仍然不允许。帮帮我

提前感谢

以下是查询:

代码语言:javascript
复制
create table book_loans
(
     loan_id varchar(10) not null,
     book_id varchar(10) not null,
     branch_id smallint not null,
     card_no varchar(10) not null,
     date_out date null default null,
     due_date date null default null,
     date_in date null default null
)

BULK
INSERT book_loans
FROM 'F:\sql project\resources\SQL_library_project_data\book_loans_data.txt'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '<>',
FIRSTROW=2
)
GO

以下是数据文件:

代码语言:javascript
复制
load_id,book_id,branch_id,card_no,date_out,due_date,date_in<>
1,0399147020,1,9019,2013-11-22,2013-12-06,2013-12-01<>
2,0030059380,4,9007,2013-12-01,2013-12-15,2013-12-16<>
3,0671880756,5,9018,2013-12-08,2013-12-22,2013-12-22<>
4,0911625291,3,9013,2014-01-02,2014-01-16,2014-01-12<>
5,0688161995,5,9022,2014-02-10,2014-02-24,2014-03-01<>
6,0911625291,2,9011,2014-03-03,2014-03-17,2014-03-16<>
7,1861003730,3,9034,2014-04-17,2014-05-01,NULL<>
8,0201612585,3,9034,2014-04-17,2014-05-01,NULL<>
9,1565927699,3,9034,2014-04-17,2014-05-01,NULL<>
10,0192860925,4,9009,2014-04-18,2014-05-02,NULL<>
11,0805057579,1,9021,2014-04-18,2014-05-02,NULL<>
12,0911625607,2,9018,2014-04-19,2014-05-03,NULL
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-23 05:38:46

BULK INSERT的工作方式是,空值需要为空字段,即value,2,,3。两个参数之间没有一个值声明为空值。在您的文件中,您使用NULL来表示DB值,但是bulk insert无法将其读取为DB NULL值,因为您可能试图将字符串' NULL‘插入到字段中。您可以从文本文件中删除所有NULL,或者如果这不是选项,则可以批量导入到临时表,其中最后一列定义为varchar,导入之后,如果最后一列的值为' null‘,则使用DB null值。

如果希望从sql生成文本文件,请参见http://msdn.microsoft.com/en-au/library/ms162802.aspx

票数 2
EN

Stack Overflow用户

发布于 2014-10-23 05:25:24

代码语言:javascript
复制
BULK
INSERT book_loans
FROM 'F:\sql project\resources\SQL_library_project_data\book_loans_data.txt'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '<>',
FIRSTROW=2,
KEEPNULLS
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26521741

复制
相关文章

相似问题

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