分类标签归档:SqlServer

关于SqlServer中的NOLOCK


在我们系统的sql查询代码中,经常可以看到select之后会加一个NOLOCK的关键字,但是至于这个关键字是什么意思,问了下大家一般也就是说“禁用读写锁,可以提升查询性能”,但是真正深层次的原因却不清楚,查询了下相关资料然后整理了下分享给大家。

nolock是什么

nolock是 SQL Server 的一个关键字,这类关键字官方将其称之为 Hints。 Hints 的设计目的是为了能够让 SQL 语句在运行时,动态修改查询优化器的行为。 在语法上,Hints 以WITH开头。除了WITH(nolock), 还有TABLOCK/INDEX/ROWLOCK等常见的 Hints。 MSDN文...

Read more

SqlServer使用表值参数批量插入更新数据


首先,创建自定义表类型:

CREATE TYPE BulkUdt AS TABLE(
Id int,
Name NVARCHAR(10)
)

然后是使用方式:

private static System.Data.DataTable GetTestTable()
{
    System.Data.DataTable dt = new System.Data.DataTable();
    dt.Columns.Add("Id");
    dt.Columns.Add("Name");
    for (int...

Read more