相关疑难解决方法(0)

尝试插入时,错误,字符串或二进制数据将被截断

我正在运行data.bat文件,其中包含以下行:

Rem Tis batch file will populate tables

cd\program files\Microsoft SQL Server\MSSQL
osql -U sa -P Password -d MyBusiness -i c:\data.sql
Run Code Online (Sandbox Code Playgroud)

data.sql文件的内容是:

   insert Customers
            (CustomerID, CompanyName, Phone)
             Values('101','Southwinds','19126602729')
Run Code Online (Sandbox Code Playgroud)

还有8个类似的行用于添加记录.

当我跑这跟start> run> cmd> c:\data.bat,我收到此错误信息:

1>2>3>4>5>....<1 row affected>
Msg 8152, Level 16, State 4, Server SP1001, Line 1
string or binary data would be truncated.

<1 row affected>

<1 row affected>

<1 row affected>

<1 row affected>

<1 row affected>

<1 row affected>
Run Code Online (Sandbox Code Playgroud)

此外,我显然是一个新手,但是做什么Level #,并且 …

sql sql-server

232
推荐指数
10
解决办法
74万
查看次数

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

我参与了一个数据迁移项目.当我尝试将数据从一个表插入另一个表(SQL Server 2005)时,我收到以下错误:

消息8152,级别16,状态13,行1
字符串或二进制数据将被截断.

源数据列与数据类型匹配,并且在目标表列的长度定义内,因此我不知道可能导致此错误的原因.

t-sql sql-server migration data-migration sql-server-2005

132
推荐指数
8
解决办法
43万
查看次数

DbUpdateException:导致"字符串或二进制数据被截断"的字段

我收到了一条DbUpdateException消息

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

据我所知,实体中的一个字段不符合数据库中列的长度.我可以下来手动检查它们.

然而,我想要做的是得到一个明智的错误信息,它可能告诉我它实际上是哪个字段!例如

字符串或二进制文件将在字段ProspectName处截断.

我能够打印出很多随机信息.并尝试了各种各样的东西.但没有任何东西指向字段名称.

请注意,这不是类型DbEntityValidationException,它是一个类型DbUpdateException

// DbUpdateException exception
foreach (var entry in exception.Entries)
{ 
    builder.AppendLine(String.Format("Error at: Type {0}", entry.Entity.GetType().Name));

    if ((exception.InnerException is System.Data.Entity.Core.UpdateException) &&
        (exception.InnerException.InnerException is System.Data.SqlClient.SqlException))
    {
        var updateException = (System.Data.Entity.Core.UpdateException)exception.InnerException;

        var sqlException = (System.Data.SqlClient.SqlException)exception.InnerException.InnerException;
        var result = new List<ValidationResult>();

        for (int i = 0; i < sqlException.Errors.Count; i++)
        {
            builder.AppendLine(String.Format("Error code: {0} ", sqlException.Errors[i].Number));
            builder.AppendLine(String.Format("Source: {0} ", sqlException.Errors[i].Source));
            builder.AppendLine(String.Format("Message: {0} ", sqlException.Errors[i].Message));
            builder.AppendLine(String.Format("State: {0} ", sqlException.Errors[i].State));
            builder.AppendLine(String.Format("Procedure: {0} ", …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework exception entity-framework-6

7
推荐指数
1
解决办法
6700
查看次数

错误'字符串或二进制数据将在Microsoft SQL中被截断'

将数据插入Microsoft SQL时出现此错误.

错误:('22001','[22001] [Microsoft] [SQL Server的ODBC驱动程序13] [SQL Server]字符串或二进制数据将被截断.(8152)(SQLParamData); [01000] [Microsoft] [ODBC驱动程序13 for SQL Server] [SQL Server]该语句已被终止.(3621)')

仅供参考,我使用Python 2.7和pyodbc库.

那个错误是什么?我该怎么做才能解决它?

python sql database sql-server python-2.7

4
推荐指数
1
解决办法
3万
查看次数