当代码生成器使用新的 Microsoft 括号表示法 ( []
) 为几乎所有内容生成输出时,它们往往更简单。
当我第一次看到它时,我虽然哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇当时有些禁止引用的标识符符号表示法被禁止引用的标识符符号的转世。
据我所知,它是 Microsoft 的专有扩展(意味着 Oracle 不支持它)。
查看 SQL Server,如果您定义一个表,则没有区别
CREATE TABLE [dbo].[Table_2] ([col1] [int], [col2] [int]);
Run Code Online (Sandbox Code Playgroud)
或者
CREATE TABLE dbo.Table_2 (col1 int, col2 int);
Run Code Online (Sandbox Code Playgroud)
这是个人或公司风格的问题。始终如一。
现在,如果您想将数据库迁移到 Oracle,括号是没有选择的。
您可以使用旧的带引号的标识符,但这些标识符区分大小写,这会导致很多麻烦。
从生成的代码中删除所有括号、避免使用空格、其他特殊字符和保留关键字作为名称,并且仅以大多数 DBMS 理解的方式进行编码是否是个好主意?
多年前,写
where exists (Select * from some_table where some_condition)
Run Code Online (Sandbox Code Playgroud)
去年我注意到许多 t-sql 脚本切换到使用数字 1 而不是星号
where exists (Select 1 from some_table where some_condition)
Run Code Online (Sandbox Code Playgroud)
WHERE EXISTS (SELECT NULL FROM ...
Run Code Online (Sandbox Code Playgroud)
这是 Oracle 的常见模式吗?哪些是使用这样的东西的性能参数。
我个人的观点是,sql 开发者不应该使用 C 风格的注释。
C 风格注释的问题是,它们不嵌套。
C 样式注释是支持的救命稻草之一,当它们必须在存储过程中进行一些临时更正时,但只有当它们不必与现有的 C 注释抗争时,才能很好地工作。