2012-09-18 63 views
3

我正在C#中创建一个数据集成工具,它将数据从一个数据库再移至中间层,然后移至最后,我将所需的数据库查询存储在SQL CE数据库中,尝试插入查询到一个表中的一个,我收到:指定的标记太长。最大长度为128个字符

主要错误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语句中的选项卡和换行符

+0

没有线索,我只是目前正试图存储多个CREATE TABLE语句在该表中 –

回答

0

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

你能告诉我们你的表模式和你试图插入的数据的例子吗?

+0

好吧我场模式明确允许使用更多的则128个字符,除非在VS或SQL Management Studio中有某种我不知道的其他设置? –

+0

啊,我现在看到了这个问题 - 我认为SQL CE在CREATE TABLE命令上限制了128个字符。你可以创建一个包含更少字段的表,然后使用ALTER TABLE命令添加更多的字段 - 这是一种破解,但应该可行。然而,这通常是数据库规范化不良的症状 - 我可以建议对您的数据库设计进行一些更改(例如,将地址和电话字段移出)。 – Dai

+0

我没有运行create table命令,该命令正在存储在一个SQL CE数据库中,该数据库正在向我提供问题 –

0

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

编辑: 这是CHAR领域以及真...

+0

该表仅存储create table语句,然后该语句将在SQL数据库上运行 –

相关问题