字符串或二进制数据将被截断。该语句已终止。简单的错误

时间:2016-06-23 10:28:22

标签: sql sql-server

Uncaught SecurityError: Blocked a frame with origin "<MyfileServer>" from accessing a frame with origin "<Mysite with ckeditor>". Protocols, domains, and ports must match

我收到此错误

   Create Table rs
   (
   Id int  IDENTITY (1,1) Primary Key,
   mId int Not NUll,
   ad varchar Not NUll,
   stvarchar Not NUll,
   et varchar Not NUll,
   nt varchar(max)
   );


   insert into rs ( nt, et, st, ad, mId) 
values ('as','as','as','as',12)

这是一个简单的SQL,但在解决它时遇到了困难

3 个答案:

答案 0 :(得分:3)

您没有为varchar变量设置大小,因此大小默认为1,因此当您将大小为2的varchar插入表格时会出现此错误,请为{{{ 1}}变量来解决这个问题

varchar

答案 1 :(得分:2)

来自MSDN

  

varchar [(n | max)]
  可变长度的非Unicode字符串数据。 n定义字符串长度,可以是1到8,000之间的值。 max表示最大存储大小为2 ^ 31-1个字节(2 GB)。

     

<强>说明   如果未在数据定义或变量声明语句中指定n,则默认长度为1.使用CAST和CONVERT函数时未指定n时,默认长度为30.

指定Varchar的默认长度。另请查看此article ..

   Create Table rs
   (
   Id int  IDENTITY (1,1) Primary Key,
   mId int Not NUll,
   ad varchar(5) Not NUll,
   st varchar(5) Not NUll,
   et varchar(5) Not NUll,
   nt varchar(max)
   );

   insert into rs ( nt, et, st, ad, mId) 
   values ('as','as','as','as',12

答案 2 :(得分:2)

正如@Krish指出你需要分配空间.i.e定义每列的大小

     Create Table rs
   (
     Id int  IDENTITY (1,1) Primary Key,
     mId int Not NUll,
     ad varchar(2) Not NUll,
     st varchar(2) Not NUll,
     et varchar(2) Not NUll,
     nt varchar(max)
   );


   insert into rs ( nt, et, st, ad, mId) 
   values ('as','as','as','as',12)

OR

默认大小为1,所以这也应该有用......但这不是你想要的(它只是为了解释问题)

INSERT INTO #rs ( mId, ad, st, et, nt) 
VALUES (12, 'a','a', 'a', 'a')