WITH (<table_hint> ) 指定查询优化器对此表和此语句使用优化或锁定策略。有关详细信息,请参阅表提示 (Transact-SQL)。在 SQL Server 2005 中,除一些例外情况之外,仅当使用了 WITH 关键字指定表提示时,FROM 子句中才支持这些提示。指定表提示时还必须使用圆括号。 使用或不使用 WITH 关键字均可使用的表提示如下:NOLOCK、READUNCOMMITTED、UPDLOCK、REPEATABLEREAD、SERIALIZABLE、READCOMMITTED、FASTFIRSTROW、TABLOCK、TABLOCKX、PAGLOCK、ROWLOCK、NOWAIT、READPAST、XLOCK 和 NOEXPAND。不使用 WITH 关键字指定这些表提示时,必须单独指定提示。例如:FROM t (fastfirstrow)。使用另一个选项指定提示时(如 (fastfirstrow, index(myindex) 所示),必须使用 WITH 关键字指定提示,例如: FROM t WITH (fastfirstrow, index(myindex)).当数据库的兼容级别为 80 或更低时,可以不使用 WITH 关键字来指定提示。 从这句话来讲,with(nolock)和nolock不加with在2005里是相同的.
insert 就尽量使用into,因为oracle得其他数据库必须使用into
其实就像 delete <tableName> 一样 系统会自动写为 delete from <tableName> from table nolock 也会被自动写为from table with(nolock)
谢谢
我也这以认为
在2005里有区别吗?
不过个人感觉加上 with 规范一点,完全是自己跟自己找事insert 也是一样,以前写insert都是后面直接跟表名
后来感觉自己的代码少了不好看就加上insert into这个with也是一样
请参考:
http://msdn2.microsoft.com/zh-cn/library/ms177634.aspx
http://msdn2.microsoft.com/zh-cn/library/ms187373.aspx
指定查询优化器对此表和此语句使用优化或锁定策略。有关详细信息,请参阅表提示 (Transact-SQL)。在 SQL Server 2005 中,除一些例外情况之外,仅当使用了 WITH 关键字指定表提示时,FROM 子句中才支持这些提示。指定表提示时还必须使用圆括号。 使用或不使用 WITH 关键字均可使用的表提示如下:NOLOCK、READUNCOMMITTED、UPDLOCK、REPEATABLEREAD、SERIALIZABLE、READCOMMITTED、FASTFIRSTROW、TABLOCK、TABLOCKX、PAGLOCK、ROWLOCK、NOWAIT、READPAST、XLOCK 和 NOEXPAND。不使用 WITH 关键字指定这些表提示时,必须单独指定提示。例如:FROM t (fastfirstrow)。使用另一个选项指定提示时(如 (fastfirstrow, index(myindex) 所示),必须使用 WITH 关键字指定提示,例如: FROM t WITH (fastfirstrow, index(myindex)).当数据库的兼容级别为 80 或更低时,可以不使用 WITH 关键字来指定提示。
从这句话来讲,with(nolock)和nolock不加with在2005里是相同的.
from table nolock 也会被自动写为from table with(nolock)