問題タブ [sql-server]
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 - SQL Serverテーブルへの変更を確認しますか?
トリガーを使用したり、データベースの構造を変更したりせずに、SQL Serverデータベースのテーブルへの変更を監視するにはどうすればよいですか?私が好むプログラミング環境は.NETとC#です。
SQL Server2000SP4以降をサポートできるようにしたいと思います。私のアプリケーションは、他社製品のボルトオンデータ視覚化です。私たちの顧客ベースは数千人にのぼるので、インストールのたびにサードパーティベンダーのテーブルを変更するという要件を課す必要はありません。
「テーブルへの変更」とは、テーブル構造の変更ではなく、テーブルデータの変更を意味します。
最終的には、変更を定期的にチェックするのではなく、アプリケーションでイベントをトリガーするように変更したいと思います。
私の要件(トリガーやスキーマの変更なし、SQL Server 2000および2005)を考えると、最善の行動はT-SQLBINARY_CHECKSUM
の関数を使用することのようです。私が実装する予定の方法は次のとおりです。
X秒ごとに、次のクエリを実行します。
そして、それを保存された値と比較します。値が変更された場合は、クエリを使用してテーブルを1行ずつ調べます。
そして、返されたチェックサムを保存されている値と比較します。
mysql - SQL Server 2005 から MySQL にデータをエクスポートする方法
私はSQL Server 2005
、大量のデータを取得しようとすることに頭を悩ませてきました。300 近くのテーブルを含むデータベースが与えられたので、これを MySQL データベースに変換する必要があります。私の最初の呼び出しは bcp を使用することでしたが、残念ながら有効な CSV を生成しません。文字列はカプセル化されていないため、コンマを含む文字列 (または区切り文字として使用するもの) を含む行を処理できません。明らかに、CSV はデータ型について何も教えてくれないので、すべての create table ステートメントを手書きする必要があります。
SQL Server と MySQL の両方に接続してコピーを実行できるツールがあれば、さらに良いでしょう。ビュー、ストアド プロシージャ、トリガーなどは失われますが、ベース タイプのみを使用するテーブルを 1 つの DB から別の DB にコピーするのは難しくありません。
そのようなツールを知っている人はいますか?integer、float、datetime、および string をサポートしている限り、仮定の数や発生する単純化の数は気にしません。とにかく、多くの剪定、正規化などを行わなければならないので、キーや関係などを保持することは気にしませんが、データの初期セットを迅速に取得する必要があります!
sql-server - SQL Server データベースのバージョン管理を行う方法は?
データベースをバージョン管理下に置きたいです。
私は常にそこに少なくともいくつかのデータを入れたいと思っています ( alumbが言及しているように: ユーザーの種類と管理者)。また、パフォーマンス測定のために生成されたテスト データの大規模なコレクションが必要になることもよくあります。
データベースにバージョン管理を適用するにはどうすればよいですか?
sql-server - SQLServer6.5のアップグレード
はい、知っています。SQL Server 6.5
2008年の実行中のコピーの存在はばかげています。
それが規定されていますが、からに移行するための最良の方法は何6.5
ですか2005
?直接の道はありますか?私が見つけたドキュメントのほとんどは、へのアップグレード6.5
を扱ってい7
ます。
ネイティブアップグレードユーティリティを忘れて、SQL Server
すべてのオブジェクトとデータをスクリプト化し、最初から再作成する必要がありますか?
私は今週末にアップグレードを試みるつもりでしたが、サーバーの問題により次の段階までアップグレードが延期されました。ですから、どんなアイデアでもその週の間に歓迎されます。
アップデート。これが私がそれをやった方法です:
- 問題のデータベースをバックアップし、マスターをオンにし
6.5
ます。 - のマスターに対して'
SQL Server 2000
sを実行します。これにより、のOLEDBプロバイダーがに接続できるようになります。instcat.sql
6.5
SQL Server 2000
6.5
SQL Server 2000
のスタンドアロンを使用"Import and Export Data"
してDTSパッケージを作成し、を使用OLEDB
して6.5に接続します。6.5
これにより、すべてのテーブルが新しい2005
データベースに正常にコピーされました(これもを使用しますOLEDB
)。- のEnterpriseManagerを使用
6.5
して、データベースのすべてのインデックスとトリガーを.sqlファイルにスクリプト化します。 - 2005年のManagementStudioで、データベースの新しいコピーに対してその.sqlファイルを実行します。
- 6.5のEnterpriseManagerを使用して、すべてのストアドプロシージャをスクリプト化します。
.sql
データベースに対してそのファイルを実行し2005
ます。数十のsprocに問題があり、と互換性がありません2005
。主non-ANSI joins
にとquoted identifier issues
。.sql
これらの問題をすべて修正し、ファイルを再実行しました。6.5
のログインを再作成し、2005
適切な権限を付与しました。
ストアドプロシージャを修正するときに少しすすぎ/繰り返しがありましたが(修正する手順は数百ありました)、それ以外の場合はアップグレードがうまくいきました。
Query Analyzer
の代わりにManagementStudioを使用できることEnterprise Manager 6.5
は、驚くべき違いです。で20〜30秒かかっていたいくつかのレポートクエリは6.5 database
、変更や新しいインデックスなどを使用せずに、1〜2秒で実行されています。そのような即時の改善は期待していませんでした。
mysql - MySQLREPLACEINTOのSQLServer2005実装?
MySQLには、この非常に便利でありながら独自仕様のREPLACE INTO
SQLコマンドがあります。
これはSQLServer2005で簡単にエミュレートできますか?
新しいトランザクションを開始し、次にaを実行しSelect()
、次にUPDATE
orまたはINSERT
andCOMMIT
を実行することは、特にアプリケーションで実行する場合は常に少し面倒です。したがって、ステートメントの2つのバージョンを常に保持します。
そのような関数をSQLServer2005に実装する簡単で普遍的な方法があるのだろうか?
sql-server - テストからライブへの SQL Server データベースの展開
2 つの SQL Server、具体的には SQL Server 2005 の間でデータベースの展開をどのように管理しているのでしょうか。これはビルド スクリプトの一部である必要があるため (標準の Windows バッチ、これらのスクリプトが現在複雑であっても、後で PowerShell に切り替える可能性があります)、Enterprise Manager/Management Studio Express はカウントされません。
.mdf ファイルをコピーして添付していただけませんか? これは互換性の問題のように思われるため、バイナリデータを扱うときは常に少し注意を払っています (開発とライブは常に同じバージョンのサーバーを実行する必要があります)。
または、T-SQL に「EXPLAIN CREATE TABLE」がない場合、既存のデータベースをターゲット サーバーで実行できる SQL スクリプトにエクスポートする何かを行いますか? はいの場合、特定のデータベースを SQL クエリに自動的にダンプでき、コマンド ラインから実行できるツールはありますか? (繰り返しますが、Enterprise Manager/Management Studio Express はカウントされません)。
そして最後に - ライブ データベースに既にデータが含まれているという事実を考えると、デプロイにはすべてのテーブルを作成する必要はなく、代わりに構造の違いをチェックし、ALTER TABLE でライブ テーブルをチェックする必要があります。これには、既存のフィールドが変更されたときにデータの検証/変換も必要になる場合があります。
現在、 Red Gate製品について多くのすばらしい話を耳にしますが、趣味のプロジェクトの場合、価格は少し急です。
では、SQL Server データベースを Test から Live に自動的に展開するために何を使用していますか?
sql-server - 複数のユーザーによるデータベースレコードの編集
私はデータベーステーブル(正規化、MS SQLサーバー上)を設計し、少数のユーザーが情報を追加および編集するために使用するアプリケーション用のスタンドアロンWindowsフロントエンドを作成しました。後日、生産エリア全体を検索できるようにWebインターフェイスを追加します。
2人のユーザーが同じレコードの編集を開始した場合、最後に更新をコミットすると「勝者」になり、重要な情報が失われる可能性があるのではないかと心配しています。いくつかの解決策が思い浮かびますが、私がより大きな頭痛を引き起こすかどうかはわかりません。
- 何もせず、2人のユーザーが同じレコードを同時に編集しないことを期待してください。-ハッピングされたことがないかもしれませんが、ハプされた場合はどうなりますか?
- 編集ルーチンは、元のデータと更新のコピーを保存し、ユーザーが編集を終了したときに比較することができます。それらが異なる場合は、showuserとcomfirmupdate-データの2つのコピーを保存する必要があります。
- 最後に更新されたDATETIME列を追加し、更新時に一致するかどうかを確認します。一致しない場合は、違いを表示します。-関連する各テーブルに新しい列が必要です。
- ユーザーがチェックされるレコードの編集を開始したときに登録する編集テーブルを作成し、他のユーザーが同じレコードを編集できないようにします。-ユーザーがプログラムからクラッシュした場合にデッドロックやレコードがロックされるのを防ぐために、プログラムフローを慎重に検討する必要があります。
より良い解決策はありますか、それとも私はこれらのいずれかに行くべきですか?
sql-server - クライアント照合と SQL Server 2005
Win2k/SQL Server 2k
既存のプログラムを からにアップグレードするWindows 2003 and SQL Server 2005
だけでなく、 も使用する新しいプログラムを購入しています2k3/2k5
。ベンダーは、ソフトウェア クライアントが接続に異なる照合順序を使用し、エンタープライズのみがこれをサポートするため、両方のデータベースをホストするにはエンタープライズ バージョンを取得する必要があると述べています。
MS のサイトでこれをサポートするものを見つけることができず、正直なところ、Standard エディションが機能する場合に Enterprise に追加料金を支払いたくありません。話されていない SQL Server の機能が欠けているのでしょうか、それともベンダーが私をアップセルしようとしているのではないでしょうか?
sql - SQL Full Text Indexing が # を含む単語の結果を返さないのはなぜですか?
たとえば、SQL Server 2005 を使用したクエリは次のようになります。
以下を使用すると結果を返す列 SearchField を使用するように定義されたフルテキスト インデックスがあります。
# は特殊文字だと思いますが、上記のクエリで FREETEXT が正しく機能するようにするにはどうすればよいですか?
sql-server - Windows Server 2008 の "Server Core" は SQL Server インスタンスに適していますか?
今週、Windows Server 2008 に専用の SQL Server 2005 ボックスをセットアップしていますが、完全に機能しつつ、可能な限り必要最小限に抑えたいと考えています。
そのためには、"Server Core" オプションは魅力的に聞こえますが、その SKU で SQL Server を実行できるかどうかはわかりません。いくつかのサービスがMicrosoft の Web サイトで取り上げられていますが、SQL Server に関する兆候は見られません。
誰か明確に知っていますか?