插入查询,字符串或二进制数据将被截断

问题描述 投票:0回答:2

为什么这种情况持续发生?前2种数据类型为Int。 “游戏”为DateTime。最后是VarChar。为什么执行不成功

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS91Q2R5cC5wbmcifQ==” alt =“在此处输入图像描述”>

sql-server ssms sql-insert
2个回答
0
投票

[用作列数据类型时的默认长度varchar为1。

varchar [(n | max)]可变大小的字符串数据

。 。 。

[当在数据定义或变量声明中未指定n时语句,默认长度为1。如果在使用时未指定nCAST和CONVERT函数,默认长度为30。

char and varchar (Transact-SQL)

因此您需要为列设置最大长度。 EG

use tempdb
go
drop table if exists JaretsSchedule
go

create table JaretsSchedule
(
   FieldId int,
   TeamID int,
   Games datetime,
   TeamsPlaying varchar(255)
)

go
insert into JaretsSchedule(FieldId,TeamID,Games,TeamsPlaying)
values (1,1,'2012-01-20 10:00:00','Roadrunnersv.s.Cheetahs')

0
投票

因为,您已经超出了字段的最大大小,

ALTER TABLE JaretsSchedule ALTER COLUMN TeamsPlaying nvarchar(1000);
© www.soinside.com 2019 - 2024. All rights reserved.