20120504

http://www.cnblogs.com/tintown/archive/2005/04/24/144272.html
索引详解。。。
http://blog.163.com/cshzxing@126/blog/static/3773293020085412454118 索引的创建和使用

http://www.cnblogs.com/study123/archive/2008/12/03/1346736.html
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 数据。

     Unicode 字符串常量支持增强的排序规则
--------------------------------------------------------------------
exec('select * from'+@SchemaName+'.'+@TableName);
消息 102,级别 15,状态 1,第 1 行
'fromdbo' 附近有语法错误。

turn it into:
exec('select * from '+@SchemaName+'.'+@TableName);
then you get what you want,区别是from后面的空格。。。。。

猜你喜欢

转载自wwwjjq.iteye.com/blog/1510734
今日推荐