这是SQLSERVER2012的bug吗?

叫我三三 2013-07-16 05:16:44

;with t1 as (
select 1 c1,2 c2,3 c3
)
Select Concat( c1 , c2 , c3) from t1

;with t1 as (
select 1 c1,2 c2,3 c3
)
Select { fn Concat( c1 , c2 , c3)} from t1
--Concat 函数要求有 2 个参数。

上下2个sql语句,
上面可以正常执行返回结果 123
下面会报Concat 函数要求有 2 个参数。

在创建视图的时候Concat( c1 , c2 , c3) 会被强制转换成 { fn Concat( c1 , c2 , c3)} 导致出现错误,无法保存。
这是sqlserver2012的bug,还是我哪里没弄对?
...全文
168 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
叫我三三 2013-07-17
  • 打赏
  • 举报
回复
测试后发现 CONCAT 直接使用时没有任何问题。 使用 {fn CONCAT()} 后问题超多。

Select  CONCAT('a','b') 
Select  CONCAT(1,'a') 
Select  CONCAT('a','b','c')
Select  CONCAT(1,2) 
Select  CONCAT('a',NULL)
--ab
--1a
--abc
--12
-a

Select {fn CONCAT('a','b')} 
Select {fn CONCAT(1,'a')} 
Select {fn CONCAT('a','b','c')} 
Select {fn CONCAT(1,2)} 
Select {fn CONCAT('a',NULL)} 
--ab
--数据类型 int 和 varchar 在 concat 运算符中不兼容。
--CONCAT 函数要求有 2 个参数。
--操作数数据类型 int 对于 concat 运算符无效。
--NULL
使用sql语句 可以创建 直接用 CONCAT的视图 但是无法用SSMS进行重新设计,一打开就崩溃
叫我三三 2013-07-17
  • 打赏
  • 举报
回复
http://social.microsoft.com/Forums/zh-CN/bd453068-bc3f-443b-9427-36e63a304659/sqlserver2012bug 请用SSMS来创建,不要用sql语句创建
引用 6 楼 maco_wang 的回复:
会被强制转换成 { fn Concat( c1 , c2 , c3)} ?? 能不能上个截图看看是什么情况?
引用 5 楼 SmithLiu328 的回复:
select @@VERSION go create view vw_test as with t1 as ( select 1 c1,2 c2,3 c3 ) Select Concat( c1 , c2 , c3) as col from t1 go select * from vw_test 我的数据库是Microsoft SQL Server 2012 RC0 - 11.0.1750.32没有问题啊,可以正常创建VIEW
叶子 2013-07-17
  • 打赏
  • 举报
回复
会被强制转换成 { fn Concat( c1 , c2 , c3)} ?? 能不能上个截图看看是什么情况?
KevinLiu 2013-07-17
  • 打赏
  • 举报
回复
select @@VERSION go create view vw_test as with t1 as ( select 1 c1,2 c2,3 c3 ) Select Concat( c1 , c2 , c3) as col from t1 go select * from vw_test 我的数据库是Microsoft SQL Server 2012 RC0 - 11.0.1750.32没有问题啊,可以正常创建VIEW
叫我三三 2013-07-17
  • 打赏
  • 举报
回复
引用 2 楼 SmithLiu328 的回复:
fn Concat源代码是什么?
CONCAT ( string_value1, string_value2 [, string_valueN ] ) http://msdn.microsoft.com/en-us/library/hh231515 在视图里面被强行加上了 {fn CONCAT(,,,)}
叫我三三 2013-07-17
  • 打赏
  • 举报
回复
引用 1 楼 tangguangqiang 的回复:
concat是MSSQL2012新加的函数吗? 还没用过2012呢,只知道MYSQL有这个函数。
嗯,是sql server 2012的新函数。
KevinLiu 2013-07-16
  • 打赏
  • 举报
回复
fn Concat源代码是什么?
习惯性蹭分 2013-07-16
  • 打赏
  • 举报
回复
concat是MSSQL2012新加的函数吗? 还没用过2012呢,只知道MYSQL有这个函数。

34,594

社区成员

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

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