問題タブ [ansi-nulls]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - VS2010 データベース プロジェクトでストアド プロシージャの SET ANSI_NULLS ON/OFF をインポートする方法は?
私の質問は私の質問でかなりよくカバーされていると思いますが、ここにいくつかの背景があります:
データベースには約 1500 のストアド プロシージャがあります。それらの約半分は SET ANSI_NULLS ON で、半分は SET ANSI_NULLS OFF です。
vs2010 データベース プロジェクトを使用したいので、すべての手順を新しい db プロジェクト (インポート スクリプト) にインポートしています。プロジェクトで作成されたプロシージャの半分は、Database Option ANSI Nulls プロパティが ON で、半分が OFF であると予想されますが、それらはすべて「Project Default」になっています。
手順を正しくインポートするにはどうすればよいですか?
追加情報:
手順は次のようにスクリプト化されています
混合は歴史的な理由から存在し、そのまま維持する必要があります。現在、すべてを整理するためのリソースがありません。
sql-server - T-SQL:NOT(1=NULL)とは?
SQL サーバーで単純なブール代数を取得できません。msdn によると、次のステートメントは "1" を返すはずですが、私のサーバーでは "0" を返します。手伝って頂けますか?
msdnをご覧ください。そこでは、「NULL を NULL 以外の値と比較すると、常に FALSE になります」と明確に述べられています。- ANSI_NULLS 設定が何であれ。したがって、"1=NULL" は FALSE で、NOT(FALSE) は TRUE である必要があり、ステートメントは "1" を返す必要があります。
しかし、私のマシンでは、「0」が返されます!
1つの説明は、「1 = NULL」が「UNKNOWN」と評価されるということです。NOT(UNKNOWN) はまだ UNKNOWN ( msdn ) であり、CASE ステートメントを ELSE に強制します。
しかし、equals-operator の公式ドキュメントは間違っているでしょう。それは信じられないよ!
誰でもこの動作を説明できますか?
助けてくれてありがとう!
編集 (2012-03-15):
私が見つけた 1 つのことは、あなたの一部にとって興味深いかもしれません:
print-Statement は「False」を書き込みますが、挿入はエラーなしで実行されます。SQL-Server は、制約チェックを満たさない行を検索するためにチェック制約を無効にしているようです。
check-constraint は UNKNOWN と評価されるため、否定も UNKNOWN であり、SqlServer は check-constraint に違反する行を検出しません。
sql - 既存のテーブルのANSI_NULLSオプションを更新します
私たちのデータベースには、で作成されたテーブルがありますANSI_NULLS OFF
。これで、このテーブルを使用してビューを作成しました。そして、このビューにクラスター化されたインデックスを追加します。
クラスタ化インデックスの作成中に、この特定のテーブルのANSI_NULLがオフになっているため、インデックスを作成できないなどのエラーが表示されます。
このテーブルには大量のデータが含まれています。したがって、データを失うことなく、このオプションをオンに変更したいと思います。
このオプションを変更するためにテーブルを変更する方法はありますか?提案をお願いします。
sql-server - 異種クエリでは、接続にANSI_NULLSおよびANSI_WARNINGSオプションを設定する必要があります。これにより、一貫したクエリセマンティクスが保証されます
私はウェブ全体をチェックしましたが、私にとってうまくいくと思われる解決策を見つけることができませんでした。
ストアドプロシージャを再作成しました。最初の行が次の行になっていることを確認してください。
このエラーが発生するのは、phpからストアドプロシージャを呼び出したときだけです。それはSQLサーバーでうまく動作します..私は本当に私が他に何ができるかわかりません..私を助けてください;_;
sql-server - mssql_query でデータベースを更新中にエラーが発生しました
既存のSQL Server 2008 Databasemssql_query
に接続するために使用しています。
SELECT
クエリは問題ありませんがUPDATE
、次のようなクエリを実行すると:
次のエラーが表示されます。
次の SET オプションの設定が正しくないため、UPDATE が失敗しました: 'ANSI_NULLS, QUOTED_IDENTIFIER, CONCAT_NULL_YIELDS_NULL, ANSI_WARNINGS, ANSI_PADDING'。計算列のインデックス付きビューやインデックス、フィルター選択されたインデックス、クエリ通知、XML データ型メソッド、空間インデックス操作で使用する SET オプションが正しいことを確認します。(重大度 16)
データベースへの接続コードは次のとおりです。
sql - 子行がない場合でも親行を返すSQL
- 質問の編集 *
私はテーブルのセットを持っています。2 番目のテーブル t2 をフィルター処理するとき、t1 のすべての行を取得したいと考えています。
SQLスクリプトは以下です。いじりながら近づいている気がするのですが、なかなか実現できません。
つまり、該当する場合は t2 の行が必要ですが、t1 の行はすべて、他の列に null があります。
ありがとう。
sql - SET ANSI_NULL は ON ですが、NULL 行がまだ返されています
SET ANSI_NULL を ON に設定した次のテーブルがあります
そして、次の 1 つのレコードを挿入しました。
Microsoftの記事によると、Selectステートメントを使用する場合、行を返すべきではありませんWHERE column_name = NULL
SET ANSI_NULLS が ON の場合、WHERE column_name = NULL を使用する SELECT ステートメントは、column_name に NULL 値があってもゼロ行を返します。WHERE column_name <> NULL を使用する SELECT ステートメントは、column_name に NULL 以外の値があっても 0 行を返します。
しかし、いつこのクエリを実行しますか
NULL の値を持つ 1 つの行を返しています
なんで?