日期:2014-05-17  浏览次数:20385 次

有没有人觉得TSQL在侮辱大家智商?
最近刚学TSQL,感觉它与标准的程序语言来比,真是太TMD的侮辱我的智商了。。

1.变量定义和赋值。
  TSQL:需要两个语句:先DECLARE定义,然后再SET赋值。
  就连N年前,在小霸王上跑的GBasic,都只需要一个语句: Let XX = YY

2.居然没有赋值运算符!
  而且“=”居然是比较运算符!  
  更恐怖的是,“SET + 比较运算符号”居然是赋值功能!先不说每次赋值要打这么一长串的东西,把比较运算符拿来赋值,让其他语言情以何堪啊~ 你就不知道加一个 == 吗?

3.不仅如此,TSQL还拥有PHP般的脑残变量使用方法:在变量前面加一个符号。

4.没有花括号,而是使用一堆BEGIN  END
  从这点来说,我觉得易语言完全可以把这些越发证明TSQL的人收入囊下,这些人何等装B啊..我觉得,BEGIN和END还不够,改成 Super Star 和 Totaly End不是更爽? 试想,如果把你的C/C++/Java程序里的花括号全改成BEGIN  END,然后让你去阅读代码,你会怎样想?不信你用正则改改试试。

5.做数据库的,算法和优化肯定超牛逼吧?大家肯定都知道SELECT * FROM 某表,其实就是对该表做一个遍历,在遍历中搜索值。但如果你想在遍历期间,把该表中的每行值,都拿去别的表搜索一下,如果用程序,双重循环不就解决了吧。但SELECT却死活不让你把自定义代码加在它的循环体里,而是需要你使用跟他们一样脑残的解决方法,比如耗时又耗空间的临时表,甚至多次SELECT来实现。现在,优化了?节约空间了?节约时间了?

6.SET @某变量 = SELECT XX FROM XX 不行?
  非得 SET @某变量 = (SELECT XX FROM XX) 才行?
  拜托~你们算法这么牛逼,居然编译原理没过关?这点小小的状态都无法处理?不得不再次怀疑他们的智商和水平。

7.都是数据库了,而且还有变长字段了,怎么就没个数组甚至动态数组类型?这么懒?



直到VS2010,终于开始支持TSQL代码提示...也真难为微软开发VS的那帮人了。

此贴初学者的抱怨贴...

------解决方案--------------------
T-SQL 标准发展了三十多年,所有的关系型数据库都遵循它的原则,不管是MSSQL、mySQL,Oracle,DB2,sysbase,interbase等等基本的语法都是这样,只是不同的数据库支持的内置函数和过程等不同,我用了八年多,一直觉得很好用啊,语法简单易懂,不像其他编程语言那样复杂,而且完全符合数学上的概念。
建议楼主去接触一下pascal语法,它被号称世界上最严密的结构化编程语言,学了你就知道T-SQL规范在哪里了,呵呵,兄弟学会了再发表这个看法吧!
------解决方案--------------------
这至于口诛笔伐吗?触动了某根敏感的神经是吧!

还要楼主开发XSQL或OO-SQL再来评价?
拜托不要摆什么资格论了,开发出这东西的人不会混这个论坛,你没有资格和他讨论。
这蛋不好吃?那你自己下一个吃吃看?

标准固然要遵循,但也不能因循守旧,如果MS都象楼上某些人一样,2005就不可能有CLR集成。
什么是标准,如果楼主真的开发出XSQL或OO-SQL并且统领市场,那楼主的理论就是标准。

------解决方案--------------------
作为一个喜欢批判的人,我是很支持楼主的,确实这下问题也许每个人都注意过
6.SET @某变量 = SELECT XX FROM XX 还像写成 SELECT @某变量=XX FROM XX更合适些
------解决方案--------------------
不全是TSQL的错,部分是由于ANSI SQL的标准问题应该是历史遗留的,而且它仅仅是一种结构化查询语言,不是用来作复杂流程控制的。
------解决方案--------------------
TSQL对算法并不重视,它不是用来开发程序的语言,它只是用来操纵DBMS的.在其中加了一些程序设计的元素,只是为了在设计查询语句时方便一些而已.