简单的说 空字符串==空字符串; 是ture 而 NULL == NULL 是false;
NULL是什么都没有的意思。空毕竟是空~还是有东西只是它的这个东西是”空”
在mssql中执行下面语句:
print null+’Null有值吗?’;
print ”+’空串有值吗?’;
打印结果是:

空串有值吗?

, , ,

1 :普通SQL语句可以用Exec执行

例:

Select * from tableName

Exec(’select * from tableName’)

Exec sp_executesql N’select * from tableName’ — 请注意字符串前一定要加N

2:字段名,表名,数据库名之类作为变量时,必须用动态SQL

错误:

declare @fname varchar(20)

set @fname = ‘FiledName’

Select @fname from tableName — 错误,不会提示错误,但结果为固定值FiledName,并非所要。

正确: Exec(’select ‘ + @fname + ‘ from tableName’) — 请注意加号前后的单引号的边上加空格

当然将字符串改成变量的形式也可

declare @fname varchar(20)

set @fname = ‘FiledName’ –设置字段名

declare @s varchar(1000)

set @s = ’select ‘ + @fname + ‘ from tableName’

Exec(@s) — 成功

exec sp_executesql @s — 此句会报错

–注:@s参数必须为ntext或nchar或nvarchar类型,必须将declare @s varchar(1000) 改为declare @s Nvarchar(1000)

如下:

declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000)

set @fname = ‘FiledName’ –设置字段名
set @s = ’select ‘ + @fname + ‘ from tableName’

Exec(@s) — 成功

exec sp_executesql @s — 此句正确

3. 输入或输出参数

Read the rest of this entry »

, , , ,

declare @time1 datetime
select @time1 = getdate()
exec 存储过程名
select @time1 as 开始时间, getdate() as 结束时间, datediff(ms,@time1,getdate()) as 运行时间

症状:

  1. 以下错误服务器可能出现在登录过程与 SQL" 登录为 ' 用户名 ' 用户失败。 用户将不与可信 SQLServer 连接关联。 (MicrosoftSQLServer、 错误 18452:) "

原因:

SQL 服务器已配置为在 " Windows 身份验证模式 (Windows 身份验证) " 操作和不允许
使用
SQL 帐户。

解决方法:
Read the rest of this entry »

在SQL server中,有个随机函数rand()

在查询分析器中执行:select rand(),可以看到结果会是类似于这样的随机小数:0.36361513486289558,像这样的小数在实际应用中用得不多,一般要取随机数都会取随机整数。那就看下面的两种随机取整数的方法:
方法1、
A:

select  floor(rand()*N) -- 生成的数是这样的:12.0

B:

select cast( floor(rand()*N) as int)  --生成的数是这样的:12

Read the rest of this entry »

,

sql中允许构建动态sql 数字变量需要直接用convert() 函数转换成char类型的用单引号拼接。
而 char 的不需要转换可以直接用单引号拼接。但是碰到 字符串需要外接单引号的也就是形如:

'2.gif'

这种形式的拼接。存储过程中计算的仅仅得出

2.gif

这个字串。怎么样才能能直接拼接呢?答案是:
使用用 四个 单引号(貌似有点多 ) Read the rest of this entry »

,

10

最近…

最近比较忙~没时间打理.呵呵~预告下近期开发插件:
1. 幸运大转盘 插件预计开发 For Discuz 7.0 / NC 、PHPwind 7
2. 论坛营销插件 For Discuz 7.0
3. 模拟彩票插件 For PHPwind 7

后期 gamble.crazyi.cn 将作为所有插件演示站点。谢谢关注哈~

25

编程十诫

1.- DRY: Don’t repeat yourself. DRY 是一个最简单的法则,也是最容易被理解的。但它也可能是最难被应用的(因为要做到这样,我们需要在泛型设计上做相当的努力,这并不是一件容易的事)。它意味着,当我们在两个或多个地方的时候发现一些相似的代码的时候,我们需要把他们的共性抽象出来形一个唯一的新方法,并且改变现有的地方的代码让他们以一些合适的参数调用这个新的方法。 DRY 这一法则可能是编程届中最通用的法则了,目前为止,应该没有哪个程序员对这一法则存有异议。但是,我们却能发现,一些程序在编写单元测试(unit testing)时忘记了这一法则:让我们相像一下,当你改变一个类的若干接口,如果你没有使用DRY,那么,那些通过调用一系例类的接口的unit test的程序,都需要被手动的更改。比如:如果你的unit test的诸多test cases中没有使用一个标准共有的构造类的方法,而是每个test case自己去构造类的实例,那么,当类的构造函数被改变时,你需要修改多少个test cases啊。这就是不使用DRY法则所带来的恶果。 Read the rest of this entry »