3

我正在 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 语句中的制表符和换行符

4

2 回答 2

0

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

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

于 2012-09-18T19:48:15.423 回答
0

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

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

于 2012-09-18T19:53:01.073 回答