【问题标题】:Limitations of String Searches From MSAccess to SQl Server?从 MS Access 到 SQL Server 的字符串搜索的限制?
【发布时间】:2016-02-10 16:13:08
【问题描述】:

我正在一张小桌子上进行大型字符串查找。

当我在 MsAccess 中执行以下查询时:

SELECT isBit 
FROM [SqlServerTableName] 
WHERE mycolumnName = "[String Greater Than 128 characters]"

我收到消息:

The identifier that starts with [String Greater Than 128 characters] is too long. 
Maximum length is 128.

接着是:

Unclosed quotation mark after the character string [String Greater Than 128 characters]

还有:

Incorrect Syntax Near [String Greater Than 128 characters]

现在,有没有办法解决这个问题?这个表非常小,并且会保持非常小(

【问题讨论】:

  • access 2003 中字段名称的字符长度限制为 64 个字符。当与同样是 64 个字符的表名结合使用时,总限制为 128 个字符。它正在寻找列名,因为您使用的是左括号和右括号。如果您打算搜索字段中的数据(限制为 255 个字符,除非它是备注字段)删除括号并重试。
  • 您的“大于 128 个字符的字符串”都是字母数字吗?字符串中有引号吗?
  • @Gene 表名不超过 64 个字符。括号是为了显示一个实际上是其他东西的字段,很抱歉造成混淆!我正在测试的字符串只是文本,但将来会有字母数字字符串。我的测试字符串中没有任何引号,但这是可能的。
  • 你能提供一个你用来测试的字符串样本吗?您是在 access 还是 SQL 中运行此查询?
  • 在 MSAccess 中通过 ODBC。该字符串只是 TESTESTSETSETSETSETSET,直到超过 128 个字符。没什么特别的。

标签: sql ms-access sql-server-2012 odbc ms-access-2003


【解决方案1】:

这是因为您使用的是双引号 (") 而不是单引号 (')。

SQL Server 将其视为标识符,而不是字符串文字值。

您应该将查询更改为以下内容:

SELECT isBit 
FROM [SqlServerTableName] 
WHERE mycolumnName = '[String Greater Than 128 characters]'

【讨论】:

  • 当我尝试这样做时,我得到了一个错误:“字符串后面的引号不正确”和 [String Greater Than 128 Characters] 附近的语法不正确
猜你喜欢
  • 1970-01-01
  • 2019-05-08
  • 1970-01-01
  • 2017-07-13
  • 1970-01-01
  • 1970-01-01
  • 2011-08-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多