SQL2000中奇怪的NULL值记录问题[求助]
表资料:
Table1:
aa bb
1 10
2 20
3 NULL
4 NULL
aa bb
1 10
2 20
3 NULL
4 NULL
通过查询分析器查询(不包含NULL记录)
select * from table1 where bb <>'30'
结果:
aa bb
1 10
2 20
结果:
aa bb
1 10
2 20
创建存储过程:
CREATE PROCEDURE [dbo].[pGetTable1]
(
@bb varchar(10)
)
AS
SELECT *
FROM Table1
WHERE (bb <> @bb)
GO
(
@bb varchar(10)
)
AS
SELECT *
FROM Table1
WHERE (bb <> @bb)
GO
通过查询分析器查询(包含NULL记录)
exec pGetTable1 @bb='30'
结果:
1 10
2 20
3 NULL
4 NULL
结果:
1 10
2 20
3 NULL
4 NULL
去查了一下觉得是否是SET ANSI_NULLS,SET ANSI_NULL_DFLT_ON,SET ANSI_NULL_DFLT_OFF等开关的原因,不过试了半天发觉还是没找到原因所在。
无意中用查询分析器Alter了一下存储过程,发现NULL值记录就没有了...之后又试了多次,发现一模一样的存储过程,在企业管理器中产生就会有NULL值记录,而在查询分析器中Create或者Alter过后NULL值记录就自动消失了...
不知谁了解其中的原因,是否是在查询分析器创建或修改存储过程还会打开其他开关或者有其他操作,导致有不一样的情况发生?