指定的令牌太长.最大长度为 128 个字符

  • 本文关键字:字符 令牌 c# sql
  • 更新时间 :
  • 英文 :


我正在用 C# 创建一个数据集成工具,该工具将数据从一个数据库移动到中介,然后移动到最后一个,我将所需的数据库查询存储在 SQL CE 数据库中,尝试将其中一个查询插入到我收到的表中:

主要错误 0x80040E14,次要错误 25508"我的查询" 令牌 指定太长。最大长度为 128 个字符。[ 最大值 令牌大小(如果已知)= 128,令牌(如果已知)="我的一些查询"

查询:

update SqlQueries Set Query = "CREATE TABLE [dbo].[ASI_SYBranch](
BranchName char(255),
BranchLogoName char(255),
NoteText TEXT,
BranchID char(30),
Active bit,
CoLocationName char(255),
City char(50),
Country char(2),
State char(50),
CoNoteText TEXT,
CoLocationID char(10),
Warehouse char(10),
LocationName char(255),
TaxRegID char(50),
TaxZoneID char(10),
ShipComplete bit,
LocationID char(10),
SameasMainInfo bit,
BranchAddrLine1 char(50),
BranchAddrLine2 char(50),
BranchCity char(50),
BranchCountry char(2),
BranchState char(50),
BranchPostalCode char(20),
BranchBusinessName char(255),
BranchAttention char(255),
BranchEmail char(255),
BranchWeb char(255),
BranchPhone1 char(50),
BranchPhone2 char(50),
BranchFax char(50),
SameasMainAddr bit,
LocBusinessName char(255),
LocAttention char(255),
LocEmail char(255),
LocWeb char(255),
LocPhone1 char(50),
LocPhone2 char(50),
LocFax char(50),
LocAddrLine1 char(50),
LocAddrLine2 char(50),
LocCity char(50),
LocCountry char(2),
LocState char(50),
LocPostalCode char(20),
DefaultCountry char(2),
AccessRole char(64),
LocTaxRegID char(50),
SalesSub char(30),
ExpenseSub char(30),
FreightSub char(30),
DiscountSub char(30),
CuryGainLossSub char(30),
Description char(60),
CurySymbol char(10),
DecimalPrecision smallint,
BaseCurrencyID char(5),
PhoneMask char(50))
GO" Where RefNum = 3

表架构:

RefNum          Int
Description     nvarchar
Query           ntext (I tried nvarchar max also)

我发现相互矛盾的文章指出这可能/不可能是因为我的SQL语句的长度

问题:

1. 这是真的吗?
2. 如果是这样,我该如何解决它?

答:

最终是因为在我的制表符和换行符中 SQL语句

听起来您对数据库中的文本字段有长度限制。您需要将文本分解为 128 个字符的长字符串,或修改表的架构以允许更长的字符串。

能否向我们展示您的表架构以及您尝试插入的数据示例?

SqlCe 是一个仅 unicode 的数据库。因此,如果您使用的是 VARCHAR 字段,主要是在 CREATE TABLE 操作中,则必须更改为 NVARCHAR 数据类型。否则,您可能会收到该错误。

编辑:对于 CHAR 字段也是如此...

最新更新