2016-04-25 80 views
-3

我称之为“SchoolRecords”一个数据库,我使用下面的代码创建一个表:表,但不承认

Create TABLE tblRoom (
ID nvarchar (2) Primary Key, 
RoomType nvarchar (8), 
Capacity numeric (3) 
) 

创建表,因为它出现在对象资源管理器中,但是当我尝试插入信息时,它会在表名称下方显示一条红线,当它悬停在它上面时,它会显示'无效的对象名称't​​blRoom'。我的代码如下:

insert into tblRoom values ('B115[ca]','LT',100) 
insert into tblRoom values ('B206[ca]','CL',36) 

当exectuting代码出现此错误:

Msg 8152, Level 16, State 4, Line 1 
String or binary data would be truncated. 
The statement has been terminated. 
+2

解决您只需要更新您的智能感知缓存红色squigglies。 ctrl + shift + r –

回答

2

你的问题不是“无效对象名称”,这可能是在设计一个假阳性错误(它发生)。您的问题是

字符串或二进制数据将被截断。

定义您的ID作为nvarchar (2),但你要的东西串在那里的路了两个字符:“B115 [CA]”。要么将您的ID的大小增加到nvarchar(8)或更大,要么缩小您的ID。

1

这是因为查询的顺序与您在创建表格时所做的声明的顺序相同。使用您的查询,您尝试在nvarchar(2)类型的列中插入nvarchar(8)。

插入顺序必须是ID,RoomType和Capacity。

这样做的另一种方法是declarating插入的顺序:

INSERT INTO tblRoom 
(RoomType, ID, Capacity) 
VALUES ('B115[ca]','LT',100)