字段名使用关键字有哪些潜在的危险

anison 2007-11-30 12:43:35
很多表里都有编号字段,比如Owner表
我不想叫OwnerNo,直接用No的话又跟关键字一样
虽然暂时没什么问题。。。但是有没潜在的危险?
...全文
454 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
bestzrz 2007-12-02
  • 打赏
  • 举报
回复
一直不太明白[]是干什么的...原来是这样啊.. . 学习了
w2jc 2007-12-02
  • 打赏
  • 举报
回复
呵呵,看来结论就是最好不要用关键字,一是麻烦,得用[ ],二是可能有些莫名奇怪的问题。

还不如花点时间制定了命名规范,比如 owner_id 或者 OwnerID 就是两种风格不同的规范。

再就是建立一个数据字典,好好检查一下有没有不符合上面所说的情况。
阿里呆呆 2007-11-30
  • 打赏
  • 举报
回复
呵呵 我也是刚刚明白[]的意义
yesyesyes 2007-11-30
  • 打赏
  • 举报
回复
不是危险
而是麻烦
比如
select [select]
from [from]
where [where]=1
group by [group]
order by [order]
好玩吧
anison 2007-11-30
  • 打赏
  • 举报
回复
最好是不要和默认关键字冲突,
OwnerNo 没有什么不好的,简单而且也明确
-------
那Owner表字段命名为了保持一致 那岂不是所有字段都要加Owner前缀
Gangzai1983 2007-11-30
  • 打赏
  • 举报
回复
做人要厚道!!!
ojuju10 2007-11-30
  • 打赏
  • 举报
回复


用关键子作为字段比较慢,要在字段上加[]


有些关键子系统会默认是字段名,例如:name

有些关键子作为字段,必须要加[],例如:[select]

fwacky 2007-11-30
  • 打赏
  • 举报
回复

select [column]
from [where]
where [column] = 1


-狙击手- 2007-11-30
  • 打赏
  • 举报
回复
建议不用,但是如果非要用,一定在以后 角本时加 '[]'
fa_ge 2007-11-30
  • 打赏
  • 举报
回复
最好不用关键字,意义上也让人产生歧意,不好理解.
命名最好按楼上说的一样
JL99000 2007-11-30
  • 打赏
  • 举报
回复
字段命名时我觉得还是用前后缀,我命名时都用name_ch,id_i这种
lgzxz999 2007-11-30
  • 打赏
  • 举报
回复
一直不太明白[]是干什么的...原来是这样啊.. . 学习了
hui_hui_2007 2007-11-30
  • 打赏
  • 举报
回复
最好不用关键字,虽然微软自带的示例库中字段名也是关键字,估计那是一种示例的作用,告诉大家,与关键字重名时如何处理。
如果是关键字,就加上定界符[]吧。
tianhuo_soft 2007-11-30
  • 打赏
  • 举报
回复
不能做insert等操作
我以前定义了一个 name字段结果找了一天没找到原因
anison 2007-11-30
  • 打赏
  • 举报
回复
最好是不要和默认关键字冲突,
OwnerNo 没有什么不好的,简单而且也明确
-------
那Owner表字段命名为了保持一致 那岂不是所有字段都要加Owner前缀!!!??

实际上我只有no name size 会跟关键字冲突
而用在select insert delete 中不会有什么问题吧。。

有点穿牛角尖了。。
yesyesyes 2007-11-30
  • 打赏
  • 举报
回复
我只是举例子,比如还有(都是开玩笑啦)
create database [database]
create table [table]
create view [view]
create proc [proc]
grant all on [on] to [to]
等等
w2jc 2007-11-30
  • 打赏
  • 举报
回复
最好是不要和默认关键字冲突,
OwnerNo 没有什么不好的,简单而且也明确
实在要用和关键字有冲突的,用方括号[]
select [column]
from [where]
where [column] = 1
nobody@noone 2007-11-30
  • 打赏
  • 举报
回复
不是危险
而是麻烦
比如
select [select]
from [from]
where [where]=1
group by [group]
order by [order]
好玩吧

===========================
大哥,你这个肯定会报


列 [select] 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
ojuju10 2007-11-30
  • 打赏
  • 举报
回复
最好避免下关键字

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧