Rob*_*Rob 42 sql sql-server select nolock sql-server-2008-r2
一切都基于这样的假设,即(nolock)完全适合于这种情况.已经有很多问题争论是否与(nolock)一起使用.
我环顾四周,无法找到使用之间是否存在实际差异with(nolock):
select customer, zipcode from customers c with(nolock)
Run Code Online (Sandbox Code Playgroud)
或者只是(nolock):
select customer, zipcode from customers c (nolock)
Run Code Online (Sandbox Code Playgroud)
这两者之间是否存在功能差异?文体?
一个比另一个年长,有可能被弃用吗?
Aar*_*and 53
没有功能差异,但最终语法WITH不会起作用.这已被弃用:
select customer, zipcode from customers c (nolock)
Run Code Online (Sandbox Code Playgroud)
所以你应该使用这种格式:
select customer, zipcode from customers c with (nolock)
Run Code Online (Sandbox Code Playgroud)
WITH至少从SQL Server 2008开始,不再使用表提示的关键字.在以下主题中搜索短语Specifying table hints without using the WITH keyword.:
http://msdn.microsoft.com/en-us/library/ms143729%28SQL.100%29.aspx
(nolock当然,关于你是否应该使用的讨论是独立的.我在这里发表了关于它们的博客.)
小智 6
虽然我们没有找到(nolock)和with(nolock)之间的区别... with(nolock)在SQL Server 2000版本中不起作用.
我还注意到,当你尝试从链接服务器中提取数据时,只有'(nolock)'不起作用,而你应该使用'with(nolock)'.
-- this will not work
select * from server1.DB1.dbo.table1 (nolock)
-- this will work
select * from server1.DB1.dbo.table1 with (nolock)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53577 次 |
| 最近记录: |