SQL中N $ # @的作用
2016-03-24 15:23
190 查看
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符号(@),美元符号($),数字符号(#),或者下划线
相关文章推荐
- Oracle查看允许的最大连接数和当前连接数
- SQL Server安全(5/11):架构与安全(Schemas and Security)
- SQL 存储过程返回值
- 在Ubuntu上安装Oracle Java 8, Java 7或者Java 6
- mysql备份与恢复详解
- 数据库设计的三大范式
- Mysql存储过程使用总结
- Hibernate 学习笔记(1):入门
- Supported syntax of Spark SQL
- 更新数据库表的某一字段为限制范围的随机数
- mysql 左链接,右链接,内连接
- memcached pk redis
- Oracle学习笔记(2)
- 数据库位图索引的优缺点
- 浅析mysql交互式连接&非交互式连接
- Mysql用户与权限管理
- 零基础准备ocp第一天
- MySQL常见错误有哪些_MySQL常见错误的快速解决方法
- 将MySQL help contents的内容有层次的输出方法推荐
- SQL server存储过程语法及实例