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

时间:2012-09-18 19:38:10

标签: c# sql

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

  

重大错误0x80040E14,轻微错误25508“Myquery”令牌   指定太长了。最大长度为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语句

2 个答案:

答案 0 :(得分:0)

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

您能告诉我们您的表架构以及您尝试插入的数据示例吗?

答案 1 :(得分:0)

SqlCe是一个仅限unicode的数据库。因此,如果您正在使用VARCHAR字段(主要在CREATE TABLE操作中),则必须更改为NVARCHAR数据类型。否则你可以得到那个错误。

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