Sql 表名 与关键字(保留字)冲突

来源:互联网 发布:linux入门教程 pdf 编辑:程序博客网 时间:2024/04/28 12:18

在用SQL创建数据库的表时,很多时候对于系统自带的关键字不是很在意,这意味着档我们创建表的时候,不太会在意一些潜在问题:
比如 我想建一个用户表User 可是创建的时候,不通过,对于想建Group表  我也遇到同样的问题(像order,identity等等)。
我遇到过好多次,每次都是想当然写表名,结果等想到原来是这个问题的时候,倒(很浪费时间,这之前遇到过啊!)。
解决办法:我是修改表名。
一些网上搜到的办法:
为了避免与系统保留字或系统内置系统表名冲突
一般表明要加上[]
比如;  user表
一般sql查询是加 [user] 否则出错:与系统内置表名冲突(我没有测试)。
所以我们在命名表的时候要注意到他,否则后果比较麻烦。
下面这此词都是T-SQL语句中的关键字,在你写SQL语句,存储过程,触发器或字段命名等时要避免使用这些词。
这要求命名表要规范:
表命名要遵循以下原则:
l  采用“系统名+_+t_+模块名+_+表义名”格式构成。
l  若数据库中只含有单个模块,命名可采用“系统名+t_+表义名”格式构成。
l  整个表名的长度不要超过30个字符。
l  系统名、模块名均采用小写字符。
l  模块名或表义名均以其英文单词命名,且字符间不加分割符;表义名中单词的首字符大写,其它字符小写,多个单词间也不加任何分割符,单词全部采用单数形式。
l  表别名命名规则:取表义名的前3个字符加最后一个字符。如果存在冲突,适当增加字符(如取表义名的前4个字符加最后一个字符等)。
l  关联表命名为Re_表A_表B,Re 是Relative的缩写,表A 和表B均采用其表义名或缩写形式。
这样会避免与关键字冲突,将麻烦降到最低。