Tite SQL(transact-SQL)在SQLite和其他SQL数据库中有效吗?

时间:2011-07-09 02:12:07

标签: mysql sql tsql sqlite

似乎没有关于T-SQL以及在SQLite和其他非Microsoft SQL实现中使用它的能力的任何明确信息。我遇到的大多数文章都说它是Microsoft专有的,所以我们可以在SQLite数据库上使用CASE等T-SQL语句吗?

2 个答案:

答案 0 :(得分:14)

T-SQL是Microsoft的ANSI SQL标准的实现(方言)。与大多数实现一样,部分是专有的而非标准的,对于其他平台而言是允许但不是惯用的怪癖,以及未实现的标准中定义的项目。 MySQL,sqlite和其他人的方式是一样的,因此有时候对另一个平台的怪癖会使“正确”和符合标准的T-SQL在该平台上被打破。

换句话说,如果你了解T-SQL,你就知道你需要为SQLite,MySQL,oracle,db2,Informix,Access等编写查询的大约85%。但是,会有一些障碍;绝对不要指望为一个平台编写的代码可以在另一个平台上工作。

CASE是其中一种情况,其中各种各样的sql往往不同,而许多其他实现选择基于IF的语法。另一方面,核心SELECTFROMWHERE关键字往往更加一致。

答案 1 :(得分:8)

ANSI SQL是标准的结构化查询语言。

大多数数据库供应商都支持SQL。 T-SQL是Microsoft的ANSI SQL版本。