我正在运行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 Server 2005)时,我收到以下错误:
消息8152,级别16,状态13,行1
字符串或二进制数据将被截断.
源数据列与数据类型匹配,并且在目标表列的长度定义内,因此我不知道可能导致此错误的原因.
我收到了一条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) 将数据插入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库.
那个错误是什么?我该怎么做才能解决它?
sql-server ×3
sql ×2
c# ×1
database ×1
exception ×1
migration ×1
python ×1
python-2.7 ×1
t-sql ×1