表已创建但无法识别

时间:2016-04-25 15:23:24

标签: sql-server error-handling insert

我有一个名为' 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.

2 个答案:

答案 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)