提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:杨鹏连|2020-07-09 14:39:54.793|阅读 272 次
概述:如果使用equals SQL提示符声明列别名,将会违反样式规则(ST002)。最好遵循ANSI-SQL92标准,使用AS关键字分配别名。如果别名不是标准标识符,则用双引号分隔它。使用单引号一直以来都不被提倡(DEP021)。
#慧都22周年庆大促·界面/图表报表/文档/IDE/IOT/测试等千款热门软控件火热促销中>>
相关链接:
SQL Prompt是一款实用的SQL语法提示工具。SQL Prompt根据数据库的对象名称、语法和代码片段自动进行检索,为用户提供合适的代码选择。自动脚本设置使代码简单易读--当开发者不大熟悉脚本时尤其有用。SQL Prompt安装即可使用,能大幅提高编码效率。此外,用户还可根据需要进行自定义,使之以预想的方式工作。
如果使用equals SQL提示符声明列别名,将会违反样式规则(ST002)。最好遵循ANSI-SQL92标准,使用AS关键字分配别名。如果别名不是标准标识符,则用双引号分隔它。使用单引号一直以来都不被提倡(DEP021)。
曾经有一段时间,SQL Server和Sybase中的列别名只是通过赋值表达式来声明的,而有些人仍然喜欢用旧的方法来声明,就像我们中的一些人仍然喜欢跳线舞,或者穿紧身衣唱歌。如今,其他关系数据库系统,如PostgreSQL、MySQL、SQLite和Oracle,都使用as语法作为别名,就像ANSI-SQL92标准中定义的那样,该标准用于为结果的列分配名称。
无论古老的语法对您有多方便,通常最好还是坚持这种官方语法。首先,很可能将来有人将不得不维护您的代码,并且可能会因为没有学习过这些代码而对这些非标准的语法感到不解。其次,微软可以很容易地决定在SQL Server中支持旧的Sybase语法不再方便,您的代码也不会传输到新版本。
列别名侵犯
看在以前的份上,有很多SQL Server可以容忍的方法。下面的一些示例使用旧样式,即使用equals声明列别名,这会导致SQL Prompt引发与样式规则(ST002)的冲突,而其他示例则使用字符串文本(“Tables”)作为列别名,这早就被弃用了,因此违反了SQL Prompt不推荐使用的语法规则之一(DEP021)。
SELECT Tables = Schema_Name(schema_id)+'.'+[name] FROM sys.tables SELECT "Tables" = Schema_Name(schema_id)+'.'+[name] FROM sys.tables SELECT [Tables] = Schema_Name(schema_id)+'.'+[name] FROM sys.tables SELECT 'Tables' = Schema_Name(schema_id)+'.'+[name] FROM sys.tables SELECT Schema_Name(schema_id)+'.'+[name] [Tables] FROM sys.tables SELECT Schema_Name(schema_id)+'.'+[name] 'Tables' FROM sys.tables SELECT Schema_Name(schema_id)+'.'+[name] "Tables" FROM sys.tables SELECT Schema_Name(schema_id)+'.'+[name] Tables FROM sys.tables SELECT Schema_Name(schema_id)+'.'+[name] AS [Tables] FROM sys.tables SELECT Schema_Name(schema_id)+'.'+[name] AS 'Tables' FROM sys.tables SELECT Schema_Name(schema_id)+'.'+[name] AS "Tables" FROM sys.tables SELECT Schema_Name(schema_id)+'.'+[name] AS Tables FROM sys.tables
所有这些都给出了相同的结果。
别名的正确方法
但是,在这12种变体中,只有两种选择语句遵循官方的ANSI语法,即使用AS关键字,并在必要时将标识符放在双引号中。在SQL Server 2016中,' string_alias ' = expression的使用被标记为不推荐使用,但这确实适用于任何单引号的使用。
我认为最安全的方法是使用ANSI语法。如果文字不符合SQL Server标识符的规则,或者是保留字,那么它应该使用双引号,而不是单引号字符串分隔符。SQL Server首选的方括号分隔别名的用法来自Sybase。
我意识到AS关键字是可选的,但是使用可选的ANSI关键字是一个好习惯,如果它能使代码更易于阅读和理解,尽管可能会过度使用。我们所有人都不喜欢使用 NATIONAL CHARACTER VARYING( n ),而不是NVARCHAR(n)。
所以,我认为最好的形式是……
SELECT Schema_Name(schema_id)+'.'+[name] AS Tables FROM sys.tables
…或…
SELECT Schema_Name(schema_id)+'.'+[name] AS "My Tables" FROM sys.tables
除非您特别喜欢使用老式的赋值语法,否则应该避免使用它,因为它不是标准的SQL,而且只能容纳为以前版本的SQL Server编写的遗留代码。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@hmdbvip.cn
文章转载自:



在嵌入式软件测试领域,对交叉编译代码进行单元测试是一大挑战。Parasoft C/C++test作为专业的C/C++测试工具,能够与劳特巴赫Trace32调试器深度集成。下面会详细介绍如何在C++test中配置Trace32调试器,实现对PowerPC架构程序的单元测试,涵盖环境设置、项目导入到测试执行的全过程。
本文将为大家介绍如何使用DevExpress WinForms数据网格控件实现摘要文本的格式化,欢迎下载最新版组件体验!
Parasoft C/C++test作为一款功能强大的自动化测试工具,为嵌入式开发提供了全面的测试解决方案。特别是在CCS开发环境中,C++test能够无缝集成,为F2812等DSP项目提供专业的单元测试支持。下面将介绍如何在CCS3环境下配置和使用C++test进行F2812项目的单元测试。
在嵌入式开发中,尤其是基于ARM架构的安全关键领域,单元测试是验证代码在目标硬件上运行时行为正确性的关键环节,对于保障最终产品的可靠性至关重要。下面将介绍如何利用Parasoft C/C++test开展单元测试,包括配置、执行及解决可能遇到的许可证问题,完成从静态检查到动态运行的完整测试闭环。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@hmdbvip.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
永利最大(官方)网站 