SQL中N $ # @的作用


declare @sql nvarchar(4000) 
set @sql= N'select @TotalRecords=count(*) from ' + N'(' + @sqlFullPopulate + N') a ' 
EXEC sp_executesql @sql,N'@TotalRecords int output', @TotalRecords output

問題:@sql= 后面有個N, N 起什么作用?

答案: 
      加上 N 代表存入數據庫時以 Unicode 格式存儲。 
      N'string' 表示string是個Unicode字符串 
      Unicode 字符串的格式與普通字符串相似,但它前面有一個 N 標識符(N 代表 SQL-92 標准中的國際語言 (National Language))。N 前綴必須是大寫字母。例如,'Michél' 是字符串常量而 N'Michél' 則是 Unicode 常量。Unicode 常量被解釋為 Unicode 數據,並且不使用代碼頁進行計算。Unicode 常量確實有排序規則,主要用於控制比較和區分大小寫。為 Unicode 常量指派當前數據庫的默認排序規則,除非使用 COLLATE 子句為其指定了排序規則。Unicode 數據中的每個字符都使用兩個字節進行存儲,而字符數據中的每個字符則都使用一個字節進行存儲。有關更多信息,請參見使用 Unicode 數據。

· 下划線(_),at符號(@),或者數字符號(#)

在SQL Server中以這些符號作為標識符的開始具有特殊的含義。一個以at符號(@)開頭的標識符表示一個本地的變量或者參數。一個以數字符號(#)開頭的標識符代表一個臨時表或者過程。一個以兩個數字符號(##)開頭的標識符標識的是一個全局臨時對象。一些Transact-SQL函數的名字以兩個at符號(@@)開頭。為了避免與這些函數混淆,推薦你不要使用兩個at符號(@@)開頭的標識符。接下來的字母可以是以下的任意幾種:

· Unicode Standard 2.0定義的字母

· 來自基礎拉丁文或者其他語音的十進制數字

· at符號(@),美元符號($),數字符號(#),或者下划線


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM