DML语句最遗憾的是IntelliSense只支持SELECT,UPDATE、DELETE和INSERT语句都不支持。 对于SELECT语句,Query Editor会根据当前的上下文确定当前数据库,也就是说不是当前会话连接的数据库,所以用一句简单的USE DATABASE语句就可以改变用于生成IntelliSense
DML语句最遗憾的是IntelliSense只支持SELECT,UPDATE、DELETE和INSERT语句都不支持。
对于SELECT语句,Query Editor会根据当前的上下文确定当前,也就是说不是当前会话连接的,所以用一句简单的USE DATABASE语句就可以改变用于生成IntelliSense列表的当前数据库。IntelliSense初始加载的列表项包括当前数据库中的架构以及用户默认架构下的表、视图和用户定义函数,还有所有系统内置的系统变量、系统函数,最后还有当前连接实例中的所有其他数据库。
用户在Query Editior中输入架构并加上"."符号后就可以看到架构下的表、视图和用户函数了,当用户继续输入表名或视图名并加上"."符号后就可以看到表和视图中的字段列表了。
从安全性方面,用户必须要有View Definition的权限才能正常使用IntelliSense。拿AdventureWorks来说,AdventureWorks下面有Person、Production、Purchasing和Sales四个架构,如果用户只有Sales架构的View Definition权限,那么当他输入"Production." 、"Person."或"Purchasing."的时候,他就看不到任何的提示。
另外值得提到的是,IntelliSense提供的列表不仅仅是数据库中已经存在的对象,还可以包括在当前脚本中那些尚未提交的对象,这就使得在编写架构定义的脚本时IntelliSense仍然可以起到一定作用。
DDL语句以及DCL语句:
没有提供IntelliSense的支持。
参数支持:
SQL Server 2008的IntelliSense支持函数和存储过程的参数,不过非常遗憾的是要让IntelliSense提供参数信息必须要在XML Editor下。
总结:
总体来说,个人觉得SQL Server 2008的IntelliSense功能还需要改进,至少要支持DDL语句么,而且不要把参数支持放到XML Editor下面去。