我有一个名为' SchoolRecords'我使用以下代码创建了一个表:
Create TABLE tblRoom (
ID nvarchar (2) Primary Key,
RoomType nvarchar (8),
Capacity numeric (3)
)
创建表是因为它出现在对象资源管理器中,但是当我尝试插入信息时,它会在表名下显示一条红线,当将鼠标悬停在它上面时,它会显示“无效的对象名称”。 tblRoom&#39 ;.我的代码如下:
insert into tblRoom values ('B115[ca]','LT',100)
insert into tblRoom values ('B206[ca]','CL',36)
在执行代码时会发生此错误:
Msg 8152, Level 16, State 4, Line 1
String or binary data would be truncated.
The statement has been terminated.
答案 0 :(得分:2)
你的问题不是“无效的对象名称”,这可能是设计师的错误肯定错误(它发生)。你的问题是
字符串或二进制数据将被截断。
您将自己的ID定义为nvarchar (2)
,但是您尝试将字符串填充到长度超过两个字符的字符串中:'B115 [ca]'。将ID的大小增加到nvarchar(8)
或更高,或缩小您的ID。
答案 1 :(得分:1)
这是因为查询的顺序与创建表时的声明顺序相同。您的查询区域尝试在nvarchar(2)类型列中插入nvarchar(8)。
广告订单必须是ID,RoomType和Capacity。
另一种方法是声明insert的顺序:
INSERT INTO tblRoom
(RoomType, ID, Capacity)
VALUES ('B115[ca]','LT',100)