SQL 插入 - 字符串或二进制数据将被截断为 INT 值
SQL Insert - String or binary data would be truncated for INT values
我在尝试向我的 table 之一插入整数时遇到 "String or binary data would be truncated" 错误。
我已经阅读了几本 post 关于列的长度与插入的值的长度的关系,但是一旦列都是 int 或 smallint 类型,我的情况似乎就不是这样了并且值都是最大两位数。
table结构如下:
CREATE TABLE [tblvUserLocation] (
[User_Location_ID] [int] IDENTITY (1, 1) NOT NULL ,
[Location_ID] [int] NULL ,
[Line_Type_ID] [int] NULL ,
[User_ID] [int] NULL ,
[Active] [smallint] NULL CONSTRAINT [DF_tblvUserLocation_Active] DEFAULT (1),
[Last_Updated] [smalldatetime] NULL CONSTRAINT [DF_tblvUserLocation_Last_Updated] DEFAULT (getdate()),
[Last_Updated_By] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL CONSTRAINT [DF_tblvUserLocation_Last_Updated_By] DEFAULT (suser_sname())
) ON [PRIMARY]
GO
我正在尝试 运行 的插入内容如下:
insert into tblvUserLocation (Location_ID, Line_Type_ID, [User_ID], Active)
values (20, 2, 41, 1)
我得到的错误如下:
Server: Msg 8152, Level 16, State 2, Line 1 String or binary data
would be truncated. The statement has been terminated.
如果这有什么不同,我正在使用 SQL Server 2000。
请告诉我你的想法。
谢谢!
看起来问题出在您的 [DF_tblvUserLocation_Last_Updated_By]
约束条件上。
它正在提取当前用户名,该用户名很可能比您的 [Last_Updated_By]
列 VARCHAR(10)
的长度更长。
将您的 DDL 更新为:
[Last_Updated_By] [varchar] (128)
我在尝试向我的 table 之一插入整数时遇到 "String or binary data would be truncated" 错误。
我已经阅读了几本 post 关于列的长度与插入的值的长度的关系,但是一旦列都是 int 或 smallint 类型,我的情况似乎就不是这样了并且值都是最大两位数。
table结构如下:
CREATE TABLE [tblvUserLocation] (
[User_Location_ID] [int] IDENTITY (1, 1) NOT NULL ,
[Location_ID] [int] NULL ,
[Line_Type_ID] [int] NULL ,
[User_ID] [int] NULL ,
[Active] [smallint] NULL CONSTRAINT [DF_tblvUserLocation_Active] DEFAULT (1),
[Last_Updated] [smalldatetime] NULL CONSTRAINT [DF_tblvUserLocation_Last_Updated] DEFAULT (getdate()),
[Last_Updated_By] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL CONSTRAINT [DF_tblvUserLocation_Last_Updated_By] DEFAULT (suser_sname())
) ON [PRIMARY]
GO
我正在尝试 运行 的插入内容如下:
insert into tblvUserLocation (Location_ID, Line_Type_ID, [User_ID], Active)
values (20, 2, 41, 1)
我得到的错误如下:
Server: Msg 8152, Level 16, State 2, Line 1 String or binary data would be truncated. The statement has been terminated.
如果这有什么不同,我正在使用 SQL Server 2000。
请告诉我你的想法。
谢谢!
看起来问题出在您的 [DF_tblvUserLocation_Last_Updated_By]
约束条件上。
它正在提取当前用户名,该用户名很可能比您的 [Last_Updated_By]
列 VARCHAR(10)
的长度更长。
将您的 DDL 更新为:
[Last_Updated_By] [varchar] (128)