3 回答

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊
直接的答案是通配符的行為取決于所使用接口的ANSI查詢(xún)模式。
ANSI-89查詢(xún)模式(“傳統(tǒng)模式”)使用*
字符,ANSI-92查詢(xún)模式(“ SQL Server兼容模式”)使用%
字符。這些模式特定于ACE / Jet,并且僅與ANSI / ISO SQL-89和SQL-92標(biāo)準(zhǔn)具有相似之處。
ADO接口(OLE DB)始終使用ANSI-92查詢(xún)模式。
DAO接口始終使用ANSI-89查詢(xún)模式。
使用ODBC時(shí),可以通過(guò)ExtendedAnsiSQL標(biāo)志顯式指定查詢(xún)模式。
從2003版本開(kāi)始的MS Access用戶(hù)界面可以使用任何一種查詢(xún)模式,因此在任何給定時(shí)間都不要假設(shè)它是另一種(例如,在驗(yàn)證規(guī)則中不要使用特定于查詢(xún)模式的通配符)。
ACE / Jet SQL語(yǔ)法具有一個(gè)ALIKE
關(guān)鍵字,無(wú)論接口的查詢(xún)模式如何,該關(guān)鍵字都允許使用ANSI-92查詢(xún)模式字符(%
和_
),但是具有ALIKE
關(guān)鍵字與SQL-92不兼容的輕微缺點(diǎn)(但是ALIKE
仍具有高度可移植性) 。但是,主要缺點(diǎn)是,我了解該ALIKE
關(guān)鍵字不受官方支持(盡管我無(wú)法想象它很快就會(huì)消失或改變行為)。

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊
通過(guò)ODBC訪(fǎng)問(wèn)Jet,我不清楚應(yīng)該使用什么通配符。我假設(shè)使用自然的Jet SQL(* /?),但是由于我從不通過(guò)ODBC使用Jet數(shù)據(jù),所以我不能說(shuō)。
正如Remou所引用的那樣,在Access中,在代碼中,這取決于您使用的是哪種數(shù)據(jù)訪(fǎng)問(wèn)接口-ADO(在Access中沒(méi)有人應(yīng)使用該接口),而您使用%/ _,而使用DAO(Jet的本機(jī)接口層) ),則使用Jet的本機(jī)通配符(* /?)。
在更高版本的Access中,在Access中執(zhí)行SQL是一個(gè)例外。我不知道是Access 2002還是2003添加了它,但是如今,您可以打開(kāi)ANSI SQL 92兼容模式。如果這樣做,通配符將變?yōu)椋? _而不是* /?。但是能夠選擇ANSI模式僅適用于Access本身-正如有一天告訴我們的那樣,您必須選擇不同的數(shù)據(jù)接口庫(kù)以使用不同的SQL模式,而ADO使用92和DAO和ODBC 89。
- 3 回答
- 0 關(guān)注
- 508 瀏覽
添加回答
舉報(bào)