因为可以使用Visual C#和TSQL来查询SQL Server,所以我想知道它们在可用的运算符和功能方面是否都相等,或者TSQL具有不能使用Visual C#实施的更多功能(没有等效的C#)?
由于可以同时使用Visual C#和TSQL查询SQL Server
不可以,无法使用C#查询SQL Server(“ Visual”部分已经删除很长时间了,现在不再使用;这时甚至很难找到对“ Visual C#”的引用)。T-SQL是查询SQL Server 的唯一语言。
有一些包装器为T-SQL提供了更高级别的接口,例如SMO,LINQ to SQL和Entity Framework。这些选项中的每一个都仅掩盖为完成该特定形式表示的操作而提交的T-SQL。从某种意义上讲,这类似于SQL Server Management Studio(SSMS),Azure Data Studio和Server Explorer在Visual Studio或任何其他允许您与SQL Server交互的GUI中,而无需自己记住和键入T-SQL。但是,至少在SSMS中,所有(或大多数)窗口的顶部都有一个“脚本”按钮,该脚本将向您显示如果您在任何窗口中单击“确定”按钮,将提交的T-SQL。 。即使获取数据库列表或对象(表,视图,存储过程等)列表来填充对象资源管理器/服务器资源管理器,也是通过SELECT语句完成的。
您可以使用SQL Server Profiler或扩展事件查看这些GUI提交的所有T-SQL和您的应用程序代码。的LINQ to SQL和实体框架的使用sp_executesql与变量/参数的查询,而且可能会显示为一个RPC调用。
因此,没有,这些包装器选项都没有实现T-SQL的100%功能。它们也不允许您确定是否存在选择(例如vs 等)时如何构造查询。这些包装器(给.NET开发人员)提供了便利,而不是灵活性。NOT INNOT EXISTS()