
SQL Server 2008のSSIS開発を行っています。
【お答えいただきたいこと】
・Equals()と比較演算子の違い
・常に比較演算子ではなく、Equals()を使用するべきなのか
【現象】
スクリプトタスク内にて、データベース(SQL Server)から取得したデータを、
Obj = ResultSet("列名").Value ```として受け取ったとき、DB上で該当データがNULLだった場合、 ```ここに言語を入力 If Obj = "aaa" Then
で比較を行った場合は、DBNullとStringの比較によるエラーになりますが、
If Obj.Equals("aaa") Then
ではエラーにならないのは、Equalsと比較演算子にどのような違いがあるからなのでしょうか。
値の比較においては、違いがなく、
参照型の比較において違いがでるのは認識しております。
Equals()で比較対象がNullであってもエラーとならないのであれば、
常にEquals()を使用すべきなのでは・・・とも思ったりしますが、間違いでしょうか。
調べたところ、比較演算子は内部的にはEquals()を呼んでいるとの記事もあり、
いよいよわからなくなってきたため、質問させていただきました。
Option StrictはOffになっています。
宜しくお願いします。