没有必要在动态SQL里写食物,如果要写写在外面如:begin tran exec(@s) commit trans 或者将动态SQL写成函数或者存储过程.如何理解这句话呢?还有:
如果是使用like进行查询的话,简单的使用index是不可以的,但是全文索引耗空间.
like 'a%' 使用索引 like '%a' 不使用索引引用 like '%a%' 查询时,查询时间和字段值总长度成正比,所以不能用char类型,而是varchar.怎么理解?是推荐用 like 'a%' 和 like '%a' 不推荐 like '%a%' 是么?谢谢~
如果是使用like进行查询的话,简单的使用index是不可以的,但是全文索引耗空间.
like 'a%' 使用索引 like '%a' 不使用索引引用 like '%a%' 查询时,查询时间和字段值总长度成正比,所以不能用char类型,而是varchar.怎么理解?是推荐用 like 'a%' 和 like '%a' 不推荐 like '%a%' 是么?谢谢~
没有必要在动态SQL里写食物,如果要写写在外面如:begin tran exec(@s) commit trans 或者将动态SQL写成函数或者存储过程.如何理解这句话呢?
-----------------------------
你的这句exec(@s)是放到事务中去执行的
或者写成存储过程...
是不是搞错了,动态语句Exec(@s)不能在函数中执行的2、
char类型:固定长度的非unicode
varchar类型:可变长度的非unicode是推荐用 like 'a%' 和 like '%a' 不推荐 like '%a%' 是么?
like 'a%' :查询以a字母开头的所有字符,如:a1 , axffgdfg , aa8980 等
like '%a' :查询以a字母结尾的所有字符,如:1234a ,ffgdfga ,8980a 等
like '%a%' :只要包含a的都会被查出
如果是使用like进行查询的话,简单的使用index是不可以的,但是全文索引耗空间.
like 'a%' 使用索引 like '%a' 不使用索引引用 like '%a%' 查询时,查询时间和字段值总长度成正比,所以不能用char类型,而是varchar.怎么理解?
--------------------------------------------------------------------------------
char 与varchar的区别就是varchar是可变长度的不会产生多余的字符,
比如:
char(5)
'a '
varchar(5)
'a'
在比较的时候
char还会要比较后面的' '的字符
而varchar则不需要比较是推荐用 like 'a%' 和 like '%a' 不推荐 like '%a%' 是么?-------------------------------------------------------------------------------------
是的