Sqlserver中一直在用又經(jīng)常被忽略的知識(shí)點(diǎn)一

已經(jīng)有快2個(gè)月沒有更新博客了,實(shí)在是因?yàn)樽罱l(fā)生了太多的事情,辭了工作,在湘雅醫(yī)院待了一個(gè)多月,然后又新?lián)Q了工作......

在平時(shí)的工作中,Sqlserver中許多知識(shí)點(diǎn)是經(jīng)常用到的,但是有時(shí)候我們往往忽略了它們,在過去的一年里,一直使用的是Mysql,現(xiàn)在又開始接觸Sqlserver了,所以就把一些常用又容易忽視的Sqlserver知識(shí)點(diǎn)總結(jié)一點(diǎn),以便備忘之用。

所有的操作都將基于Northwind數(shù)據(jù)庫(kù)來(lái)進(jìn)行操作。

SET NOCOUNT ON 介紹

在存儲(chǔ)過程中,經(jīng)常用到SET NOCOUNT ON;

作用:阻止在結(jié)果集中返回顯示受T-SQL語(yǔ)句或則usp影響的行計(jì)數(shù)信息。
當(dāng)SET NOCOUNT ON 時(shí)候,不返回計(jì)數(shù),當(dāng)SET NOCOUNT OFF時(shí)候,返回計(jì)數(shù)。

當(dāng)SET NOCOUNT ON 時(shí)候,會(huì)更新@@RowCount,但是不向客戶端發(fā)送存儲(chǔ)過程每個(gè)語(yǔ)句的DONE_IN_proc消息。

如果存儲(chǔ)過程中包含一些并不返回實(shí)際數(shù)據(jù)的語(yǔ)句,使用SET NOCOUNT ON時(shí),網(wǎng)絡(luò)通信流量便會(huì)大量減少,可以顯著提高應(yīng)用程序性能。

SET NOCOUNT 指定的設(shè)置只在執(zhí)行或運(yùn)行時(shí)候生效,分析時(shí)候不生效。

示例: