(SQL Server 2017) 我收到错误消息 8152,我不知道为什么
(SQL Server 2017) I get error Msg 8152 and I don't know why
我不知道为什么,但我在尝试插入类似
的内容后收到错误消息 8152(在 SQL Server 2017 中)
INSERT INTO Users (usr_name, usr_pwd, usr_thing1, usr_thing2)
VALUES ('ticko', 'kgrhjwekr3h4', 1, '34798563');
进入table
CREATE TABLE Users
(
usr_id INTEGER NOT NULL PRIMARY KEY IDENTITY(0, 1),
usr_name VARCHAR NOT NULL,
usr_pwd VARCHAR NOT NULL,
usr_thing1 INT NOT NULL,
usr_thing2 VARCHAR NOT NULL,
usr_group INT,
usr_status VARCHAR DEFAULT 'ACTIVE',
usr_created DATE DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (usr_group)
REFERENCES Groups(grp_reqid)
);
我得到的输出是
Msg 8152, Level 16, State 14, Line 1
String or binary data would be truncated.
在此先感谢您的帮助!
您需要为 VARCHAR
列定义长度
例如
CREATE TABLE Users(
usr_id INTEGER NOT NULL PRIMARY KEY IDENTITY(0, 1),
usr_name VARCHAR(100) NOT NULL,
usr_pwd VARCHAR(100) NOT NULL,
usr_thing1 INT NOT NULL,
usr_thing2 VARCHAR(100) NOT NULL,
usr_group INT,
usr_status VARCHAR(100) DEFAULT 'ACTIVE',
usr_created DATE DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (usr_group)
REFERENCES Groups(grp_reqid)
);
这是因为你没有给出你想在varchar和int中插入的长度。
首先将长度关联到它然后 运行 它,它不会显示任何错误。
我不知道为什么,但我在尝试插入类似
的内容后收到错误消息 8152(在 SQL Server 2017 中)INSERT INTO Users (usr_name, usr_pwd, usr_thing1, usr_thing2)
VALUES ('ticko', 'kgrhjwekr3h4', 1, '34798563');
进入table
CREATE TABLE Users
(
usr_id INTEGER NOT NULL PRIMARY KEY IDENTITY(0, 1),
usr_name VARCHAR NOT NULL,
usr_pwd VARCHAR NOT NULL,
usr_thing1 INT NOT NULL,
usr_thing2 VARCHAR NOT NULL,
usr_group INT,
usr_status VARCHAR DEFAULT 'ACTIVE',
usr_created DATE DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (usr_group)
REFERENCES Groups(grp_reqid)
);
我得到的输出是
Msg 8152, Level 16, State 14, Line 1
String or binary data would be truncated.
在此先感谢您的帮助!
您需要为 VARCHAR
列定义长度
例如
CREATE TABLE Users(
usr_id INTEGER NOT NULL PRIMARY KEY IDENTITY(0, 1),
usr_name VARCHAR(100) NOT NULL,
usr_pwd VARCHAR(100) NOT NULL,
usr_thing1 INT NOT NULL,
usr_thing2 VARCHAR(100) NOT NULL,
usr_group INT,
usr_status VARCHAR(100) DEFAULT 'ACTIVE',
usr_created DATE DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (usr_group)
REFERENCES Groups(grp_reqid)
);
这是因为你没有给出你想在varchar和int中插入的长度。 首先将长度关联到它然后 运行 它,它不会显示任何错误。