SQL2005 中 列名中有特殊字符的问题 只要回答有用 均有分 不够再加

lr21shiji 2008-03-26 06:17:10
本人最近做了一个SQL2000 换为 SQL2005的项目
中间出现问题
在前版本代码中调用SQL2000的SQL语句中直接用带"()","/"等特殊字符的列名的时候,如(SELECT 氏名(漢字), 組織コード/部コード, 組織コード/課コード, 組織コード/係班コード FROM 従業員1TBLSV) SQL语句可以通过并执行,但到了SQL2005中则不能通过执行报错说有特殊字符
请问各位大哥有没有好的方法设置一下Sql2005,使SQL2005可以通过特殊字符
如果将每个带有特殊字符的列名都加上“[]”是可以的 但就是工作量太大
各位大哥有没有什么好的方法
告诉小弟
小弟不胜感激
分不够可以再加

...全文
279 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuyx808 2008-03-27
  • 打赏
  • 举报
回复
只要回答有用 均有分
[]
playwarcraft 2008-03-27
  • 打赏
  • 举报
回复
用sql 查詢分析器 自動升成一些執行語句,它會自動幫你帶上【】
wangxuelid 2008-03-27
  • 打赏
  • 举报
回复
顶,,
zjjxxhn19840204 2008-03-27
  • 打赏
  • 举报
回复
字段名加[]
wangxuelid 2008-03-27
  • 打赏
  • 举报
回复
sss
dawugui 2008-03-26
  • 打赏
  • 举报
回复
如上采用QUOTENAME

QUOTENAME
返回带有分隔符的 Unicode 字符串,分隔符的加入可使输入的字符串成为有效的 Microsoft® SQL Server™ 分隔标识符。

语法
QUOTENAME ( 'character_string' [ , 'quote_character' ] )

参数
'{character}[...n]'

Unicode 字符数据字符串。character_string 是 sysname 值。

'quote_character'

用作分隔符的单字符字符串。可以是单引号 (')、左括号或右括号 ([]) 或者双引号 (")。如果未指定 quote_character,则使用括号。

返回类型
nvarchar(129)

示例
本示例采用字符串"abc[]def",并使用"["和"]"字符创建有效的 SQL Server 引用(分隔)标识符。

SELECT QUOTENAME('abc[]def')

下面是结果集:

[abc[]]def]

(1 row(s) affected)

注意,字符串"abc[]def"中的右括号有两个,用于表示转义符。

dawugui 2008-03-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 lr21shiji 的帖子:]
本人最近做了一个SQL2000 换为 SQL2005的项目
中间出现问题
在前版本代码中调用SQL2000的SQL语句中直接用带"()","/"等特殊字符的列名的时候,如(SELECT 氏名(漢字), 組織コード/部コード, 組織コード/課コード, 組織コード/係班コード FROM 従業員1TBLSV) SQL语句可以通过并执行,但到了SQL2005中则不能通过执行报错说有特殊字符
请问各位大哥有没有好的方法设置一下Sql2005,使SQL2005可以通过特殊字符
如果将每…
[/Quote]
你最初的设计实在是太差劲了.
fcuandy 2008-03-26
  • 打赏
  • 举报
回复
不知道是否有这个设置.

但无疑,如果一个字段名里含有特殊字符时, 如果可以有这种设置那么sql server需要花费额外的资源去处理.
比如列名为 asdf/asd

select asdf/asd from tb
它是理解为 asdf 列除以 asd 列,还是 asdf/asd 就是一个列名.

这种做法本来就不好.

楼主想求懒的话,那我也帮不上什么忙.
中国风 2008-03-26
  • 打赏
  • 举报
回复
--打印列名
declare @s nvarchar(100)
select @s=isnull(@s+',','')+quotename(Name) from syscolumns where ID=object_id(N'表名')order by colid
print @s
kelph 2008-03-26
  • 打赏
  • 举报
回复
好像有个设置可以,忘了
wzy_love_sly 2008-03-26
  • 打赏
  • 举报
回复
select quotename('組織コード') as '结果'


[組織コード]
wzy_love_sly 2008-03-26
  • 打赏
  • 举报
回复
quotename()?

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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