【问题标题】:Table is created but not recognised表已创建但无法识别
【发布时间】:2016-04-25 15:23:24
【问题描述】:

我有一个名为“SchoolRecords”的数据库,并使用以下代码创建了一个表:

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

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

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.

【问题讨论】:

  • 要修复红色波浪线,您只需要更新智能感知缓存即可。 ctrl + shift + r

标签: sql-server error-handling insert


【解决方案1】:

您的问题不是“无效的对象名称”,这可能是设计器中的误报错误(它发生了)。你的问题是

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

您将您的 ID 定义为 nvarchar (2),但您试图在其中填充一个长度超过两个字符的字符串:'B115[ca]'。将您的 ID 大小增加到 nvarchar(8) 或更大,或者缩小您的 ID。

【讨论】:

    【解决方案2】:

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

    广告订单必须是 ID、RoomType 和容量。

    另一种方法是声明插入顺序:

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

    【讨论】:

      猜你喜欢
      • 2020-09-14
      • 2020-06-11
      • 1970-01-01
      • 2021-11-19
      • 2021-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多