問題タブ [sql-server-2000]

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 投票する
9 に答える
19926 参照

sql-server-2000 - 連携サーバーの性能とオプション

職場には 2 台のサーバーがあり、1 台は SQL Server 2000 バックエンドを持つ、多くの人が使用するアプリケーションを実行しています。私は長い間これを自由に照会してきましたが、ストアド プロシージャや追加のテーブルなどを追加することはできません。

これにより、最初の SQL Server にリンクされた 2 つ目の SQL Server を持つことになり、リンク サーバーを使用して両側からデータをクエリするストアド プロシージャのライブラリを構築しました。これらのクエリの一部は、希望よりも時間がかかっています。

リンク サーバーの使用に関する優れた記事を教えてもらえますか? 通常、SQLステートメントの大部分はリモートで実行できるため、2つの間でどのデータが転送されているかを知ることに特に興味がありますが、テーブル全体を転送している可能性があると感じています。通常は小さな最終への結合ですテーブルをローカルに。

また、現在私が持っているリンクサーバーオプションは何ですか:

  • 照合互換 True
  • データ アクセス True
  • Rpc True
  • Rpc アウト True
  • リモート照合を使用する False
  • 照合名(空白)
  • 接続タイムアウト 0
  • クエリ タイムアウト 0

編集:

この投稿を更新しようと思ったのですが、パフォーマンスを向上させるためにしばらくの間、動的パラメーターを使用して openqueries を使用しました。ヒントをありがとう。ただし、これを行うと、文字列を処理することになるため、クエリがより面倒になる可能性があります。ついにこの夏、SQL Server を 2008 にアップグレードし、ライブ データ ミラーリングを実装しました。正直なところ、オープン クエリは私のタスクのローカル クエリの速度に近づいていましたが、ミラーリングにより、SQL の処理が確実に簡単になりました。

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

debugging - SQLAnalyzer でタイムスタンプ パラメータを渡してストアド プロシージャをデバッグする

こんにちは、SQL アナライザーを使用してストアド プロシージャをデバッグしようとしていますが、パラメーターの 1 つがタイムスタンプ データ型です。パラメータとして 0x00000001410039E2 を渡したい場合、どうすればよいですか? 0x00000001410039E2 を渡すと文字列の切り捨てエラーが発生し、1410039E2 だけを渡すと 0x1410039E20000000? が表示されます。

編集: @Frans はい、これは機能しますが、SQLAnalyzer で値テキスト ボックスに値を入力して右クリックしてデバッグすると、次のエラー メッセージが表示されるという問題があります。

0 投票する
18 に答える
83683 参照

sql - 単一引用符をエスケープし、ユーザー入力を単一引用符で囲むことにより、SQL インジェクションから保護できますか?

ユーザー入力を含むクエリを作成するときに、パラメーター化された SQL クエリがユーザー入力をサニタイズする最適な方法であることは認識していますが、ユーザー入力を取得して一重引用符をエスケープし、文字列全体を一重引用符で囲むことの何が問題なのか疑問に思っています。コードは次のとおりです。

ユーザーが入力した一重引用符は二重の一重引用符に置き換えられ、ユーザーが文字列を終了する機能を排除するため、セミコロン、パーセント記号など、ユーザーが入力する可能性のあるものはすべて文字列の一部になり、コマンドの一部として実際に実行されるわけではありません。

Microsoft SQL Server 2000 を使用していますが、単一引用符が唯一の文字列区切り文字であり、文字列区切り文字をエスケープする唯一の方法であると考えているため、ユーザーが入力したものを実行する方法はありません。

これに対して SQL インジェクション攻撃を開始する方法は見当たらないが、もしこれが私に思えるほど防弾であるなら、他の誰かがすでに考えていたであろうし、それは一般的な慣行であろう.

このコードの何が問題になっていますか? このサニタイズ手法を通過して SQL インジェクション攻撃を受ける方法はありますか? この手法を利用するユーザー入力のサンプルは非常に役立ちます。


アップデート:

このコードに対して SQL インジェクション攻撃を効果的に開始する方法はまだわかりません。バックスラッシュで 1 つの単一引用符をエスケープし、もう 1 つの引用符を残して文字列を終了し、残りの文字列が SQL コマンドの一部として実行されるようにすることを何人かの人々が提案しました。 MySQL データベースですが、SQL Server 2000 で単一引用符をエスケープする (私が見つけた) 唯一の方法は、別の単一引用符を使用することです。バックスラッシュはそれをしません。

また、一重引用符のエスケープを停止する方法がない限り、残りのユーザー入力はすべて 1 つの連続した文字列として処理されるため、実行されません。

入力をサニタイズするためのより良い方法があることは理解していますが、上記で提供した方法が機能しない理由を知りたいと思っています。このサニタイズ方法に対して SQL インジェクション攻撃を開始する特定の方法を誰かが知っている場合は、ぜひご覧ください。

0 投票する
15 に答える
518 参照

sql-server-2005 - SQL2000からSQL2005にアップグレードする必要があるのはなぜですか?

SQL2000からSQL2005にすでにジャンプしたことを喜んでいる最大の理由を探しています。

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

transactions - SQL Server 2000 および System.Transactions.TransactionScope()

SQL2000 で TransactionScope() を使用して LIGHTWEIGHT トランザクションを作成することは可能ですか? または、そうでない場合、CommitableTransaction および/または同様のものを使用した回避策はありますか?

したがって、基本的には、「SQL2000 でローカルから 1 サーバーへのトランザクションが必要な場合は、TransactionScope() を使用しないでください」というのが答えです。

0 投票する
5 に答える
104105 参照

sql - SQL クエリで正規表現 (置換) を実行する

&lt;特定のデータベース列ですべての '<' を置き換える最良の方法は何ですか? 基本的に行うs/&lt[^;]/&lt;/gi

ノート:

  • MS SQL Server 2000で動作する必要があります
  • 繰り返し可能でなければならない (そして で終わらない&lt;;;;;;;;;;)
0 投票する
2 に答える
1854 参照

sql-server-2000 - SQL Server 2000 から「致命的なエラー 7987」エラーが発生します

ストアド プロシージャから挿入しようとすると、エラーが発生します。Jonathan Holland が提案した KB 記事で提案されているように DBCC CHECKDB を実行してみましたが、すべてクリアで返されました。

0 投票する
7 に答える
79846 参照

sql - 列の内容に基づいてT-SQLでブール値を出力する方法は?

さまざまなテーブルの列を抽象化し、それらを事前にフィルター処理して事前に並べ替えるビューを作成しました。気にしない内容の列が 1 つありますが、内容が null かどうかを知る必要があります。したがって、この指定された列の値が nullでない場合は「 true 」、値が nullの場合は「false 」として、ビューはエイリアスを渡す必要があります。

T-SQLでそのようなブール値を選択するにはどうすればよいですか?

0 投票する
4 に答える
8686 参照

sql-server - プログラムで SQL Server 2000 のテーブルの名前を変更する - sp_rename が唯一の解決策ですか?

最近、データを失わずに SQL Server 2000 のテーブル (および列と FK/PK 制約) の名前を変更する必要がありました。このアクションを実行するための明確な DDL T-SQL ステートメントがないように見えたので、sp_rename を使用してオブジェクト名を直接いじりました。

これが問題の唯一の解決策でしたか? (それ以外は、そもそもテーブルに正しい名前を付けること以外に-doh!)

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

sql-server - SQL 2000でダイアグラムをスクリプト化する(または別の方法で保存する)方法はありますか?

SQL Server 2000で、テーブル間の関係を示すのに役立つ図を作成することができます。私たちが遭遇する問題は、誰かが開発データベースを更新すると、図が失われることです。SQLスクリプトを使用してテーブル、ストアドプロシージャ、ビューなどをロードできますが、ダイアグラムは手動で作成する必要があります。

ダイアグラムをスクリプト化する方法はありますか?または、他の方法でデータベースの外部に保存できますか?