SQL

A collection of 2 posts

SQL

老坑重填,SQL LIKE通配符在不同数据库系统中的差别。

首先说说遇到的问题,在Access软件中写了一个带LIKE的SQL语句,可以正常执行,但是复制粘贴到ADO操作里面就出错了。其原因是这样的:如果ADO所采用的数据库引擎是Microsoft Jet Engine,它是以Microsoft SQL Server为基础的,所以即使使用Access数据库作为数据源,也不能使用Access的SQL语法,而要采用SQL Server的语法,而它们的语法虽然很相像,但是还是有一些小区别,如LIKE语句。这是少数不能在本地测试SQL运行结果的情况之一。一个简单的解决方案是在服务器条件允许的情况下采用Access OLE DB Provider作为数据库引擎。 下面总结一下常见数据库系统LIKE子句匹配符的异同点: 匹配单个字符和零到多个字符的两种基本匹配符。 My SQL中使用_匹配单个字符,%匹配零到多个字符。 SQLite中使用_匹配单个字符,%匹配零到多个字符。 Oracle中使用_匹配单个字符,%匹配零到多个字符。 MS SQL中使用_匹配单个字符,%匹配零到多个字符。 Access中分为两种情况: Microsoft Jet引擎中使用_或?匹配单个字符,

Access

Access SQL中一些针对表(而不是记录)的操作

只复制表结构:SELECT INTO 新表名 FROM 旧表名 WHERE FALSE; 只复制表数据:INSERT INTO 新表名 SELECT FROM 旧表名 WHERE TRUE; 复制表结构+数据:SELECT INTO 新表名 FROM 旧表名 WHERE TRUE; 删除表:DROP TABLE 表名; 重命名需要可以复制+删除或者使用ATOX对象。 确认表存在要改管理权限,或者try一下SELECT * FROM 表名 WHERE FALSE;