問題タブ [sql-server-2019]

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.

0 投票する
2 に答える
526 参照

sql-server - SQL Server 2019 UDF 内の @@ROWCOUNT のエラー

@@ROWCOUNTMS SQL Server 2019の内部で使用すると、正しくUser Defined Function機能しなくなりました。

それが MS SQL のバグなのか、それとも望ましい動作の変更なのかはわかりません。

2019 年の以前のバージョンの動作に戻すオプションはありますか? インストールのセットアップに関するものですか?

独自のテストのコードと結果は次のとおりです。

MS SQL Server 2019 の結果 (間違った):

が原因で結果がUDF返さ1れるはずであることに注意してください。0where 1 = 0

MS SQL Server 2016 および以前のバージョンの結果 (正しい):

現在、SQL Server 2017 にアクセスできませんが、それは正しかったと思います。

0 投票する
1 に答える
274 参照

sql-server - ストアド プロシージャの ALTER COLUMN NOT NULL は常に非連続的に実行されますか?

毎週、クライアントから、主キーのない非常に大きなテーブルが含まれるデータベースが送られてきます。その中に一意の ID を持つ列は null 可能です。

したがってALTER TABLE、主キーとして必要な列を NOT NULL に設定するために実行します。

それから約 45 分後に完了し、主キーを追加します。

これまでのところ、すべて順調で素晴らしいです。

それまでは、この長くて退屈な操作を自動化しようとします。

エージェント ジョブの一部として、クライアントのデータベースの復元が完了するとすぐに実行される非常に単純なストアド プロシージャを作成しました。

これは 1 秒後に失敗し、次のエラー メッセージが表示されます。

テーブル 'Orders' の null 許容列に PRIMARY KEY 制約を定義できません。[SQLSTATE 42000] (エラー 8111) 制約またはインデックスを作成できませんでした。以前のエラーを参照してください。[SQLSTATE 42000] (エラー 1750)。ステップは失敗しました。

ALTER COLUMNそのため、前のステップが完了する前に主キー制約を設定しようとしています。主キー制約の追加を試みるまでに少なくとも 45 分はかかるはずですが、すぐに追加しようとします。手動で実行するとALTER COLUMN、問題なく動作します。

何を与える?何十ものストアド プロシージャを作成しましたが、どれもそのように動作しませんか?

強制的に待機させるにはどうすればよいですか? それが行末のセミコロンがしたことだと思いましALTER COLUMNたか?

アップデート:

ここで実際に何が起こっているかについての洞察に満ちた回答と明確化について、πに感謝します。最終的なストアド プロシージャは次のようになります。

エラーなしで動作します:)