Ausgabe
Warum passiert das immer wieder? Die ersten 2 Datentypen sind Int
. Die „Spiele“ sind DateTime
. Das letzte ist VarChar
. Warum wird es nicht erfolgreich ausgeführt
CREATE TABLE JaretSchedule
(
FieldID int Primary,
TeamID int Foreign,
Games DateTime,
TeamsPlaying varChar
);
INSERT INTO [dbo].[JaretsSchedule]
([FieldID]
,[TeamID]
,[Games]
,[TeamsPlaying])
VALUES('1', '1', '2012-01-20 12:00:00', 'Roadrunners v.s. Cheetahs');
Fehlermeldung: String- oder Binärdaten würden abgeschnitten. Die Anweisung wurde beendet
Lösung
Die Standardlänge varchar
bei Verwendung als Spaltendatentyp ist 1.
varchar [ ( n | max ) ] String-Daten variabler Größe
. . .
Wenn n nicht in einer Datendefinitions- oder Variablendeklarationsanweisung angegeben ist, ist die Standardlänge 1. Wenn n bei Verwendung der Funktionen CAST und CONVERT nicht angegeben ist, ist die Standardlänge 30.
char und varchar (Transact-SQL)
Sie müssen also eine maximale Länge für die Spalte festlegen. Z.B
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')
Beantwortet von – David Browne – Microsoft
Antwort geprüft von – Candace Johnson (FixError Volunteer)