sqlserver,你的delete语句表名为什么不能别名?
2018-04-23 20:17
232 查看
前几天写了几行sql,用于清除环境里面的脏数据,平时开发用的是oracle数据库,看了下里面的语句,处理concat字符串拼接函数看起来稍微特殊点,其它都没有啥问题。百度了下,cancat可以用在收起来server2012及以上版本的数据库中,因此没有在sqlserver进行自测,直接git提交了代码。
今天测试拿到包,在sqlserver下使用,直接报错,刚开始报的是那个表名别名附近有语法错误,还以为是sqlserver不支持concat,赶紧换成了加好拼接。拿到测试环境去试了下,还是一样的报错,直接告诉我,这个问题没这么简单了。自己再初始化了一个sqlserver数据了,连到了sqlserver数据库下,使用同样也是报错。看了很久,想了下莫不是别名的问题,百度了下,还真的是,sqlserver下,delete后面的表名不能有别名,卧槽,以前怎么没遇到过,然后改了,就好了,一连改了很多条sql。
后面稍微查了下,发现在sqlserver环境下,如果delete后面表名有别名,sqlserver会把别名认为是别名造成执行出错。
今天测试拿到包,在sqlserver下使用,直接报错,刚开始报的是那个表名别名附近有语法错误,还以为是sqlserver不支持concat,赶紧换成了加好拼接。拿到测试环境去试了下,还是一样的报错,直接告诉我,这个问题没这么简单了。自己再初始化了一个sqlserver数据了,连到了sqlserver数据库下,使用同样也是报错。看了很久,想了下莫不是别名的问题,百度了下,还真的是,sqlserver下,delete后面的表名不能有别名,卧槽,以前怎么没遇到过,然后改了,就好了,一连改了很多条sql。
后面稍微查了下,发现在sqlserver环境下,如果delete后面表名有别名,sqlserver会把别名认为是别名造成执行出错。
相关文章推荐
- SQL中Delete语句表名不能用别名?!
- sql中的Update语句为什么不能用表的别名
- Transact-SQL中Delete语句表名不能用别名?!
- sql中的Update语句为什么不能用表的别名
- SQL语句中,为什么where子句不能使用列别名,而order by却可以?
- Transact-SQL中Delete语句表名不能用别名?!
- SQL Server中Delete语句表名不能用别名
- sql中的Update语句为什么不能用表的别名
- Transact-SQL中Delete语句表名不能用别名?!
- MySQL —— 1064错误,delete语句中 表名不能用别名
- SQL语句中,为什么where子句不能使用列别名,而order by却可以?
- SQL语句中,为什么where子句不能使用列别名,而order by却可以?
- sql中的Update语句为什么不能用表的别名
- sqlserver中delete、update中使用表别名和oracle的区别
- MYSQL delete语句不支持别名?
- oracle SQL 语句里面USER关键词有冲突,不能用作表的别名
- 为什么别名不能在group by中用?
- sqlserver update语句使用别名
- DDL语句为什么不能回滚
- 想要6000以上月薪?为什么要两手空空来?面试时为什么不带笔记本电脑?为什么不能展示成果?为什么C#语法不精?为什么SQL语句不熟悉?