問題タブ [ddl]
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 - 既存のデータベースからSQLDDLとコンテンツを生成するためのツール
SQL Serverデータベースを作成するためのDDLステートメントと、データを再作成するための適切なInsertステートメントを作成する手頃な価格のツールを知っている人はいますか?私はRedGateツールを使用してデータベース比較(コンテンツ比較を含む)を行い、これは近づいています(常に空のスキーマと比較できます)が、他の人がこれを1つのステップで実行するのに役立つツールがあるかどうか疑問に思いました。
.net - データベースに依存しない最高の SQL DDL ユーティリティ?
.net プラットフォームのプロジェクトに取り組んでおり、複数のデータベース タイプをサポートしたいと考えています。DDL を一般的な形式でソース管理下に置いてから、展開用にデータベース固有の DDL に変換したいと考えています。
そこで、汎用 DDL をデータベース固有の DDL に変換するユーティリティを探しています。理想的には、MSSQL 05/08、MySQL、Oracle、Postgres、および DB2 をすぐにサポートできます。
これまでに見つけたツールは次のとおりです。
- XML から DDL
- MSSQL の組み込みサポートはありません。
- Ddlユーティリティ
- コマンド ライン ユーティリティはありません。Java または Ant スクリプトから呼び出す必要があります。
- ActiveRecord::移行
- 外部キーのサポートなし
- .net プロジェクトとの統合方法がわからない。
私が言及した経験を持っている人、または他の人を知っている人はいますか?
sql - テーブルをロックせずにALTER TABLE?
MySQL で ALTER TABLE ステートメントを実行すると、ステートメントが実行されている間、テーブル全体が読み取りロックされます (同時読み取りは許可されますが、同時書き込みは禁止されます)。大きなテーブルの場合、INSERT または UPDATE ステートメントが長時間ブロックされる可能性があります。プロセス全体でテーブルを更新できるように列を追加するなど、「ホットな変更」を行う方法はありますか?
ほとんどの場合、MySQL のソリューションに興味がありますが、MySQL で解決できない場合は、他の RDBMS に興味があります。
明確にするために、私の目的は、追加のテーブル列を必要とする新機能が本番環境にプッシュされるときのダウンタイムを回避することです。どのデータベース スキーマも時間の経過とともに変化します。これは単なる現実です。これらの変更によって必然的にダウンタイムが発生することを受け入れなければならない理由がわかりません。それはただ弱いです。
database - SybaseのテーブルとインデックスのDDLを生成する
私が管理しているデータベース内の一部のSybaseテーブルのテーブルとインデックスの両方(これ以上複雑なものは必要ありません)のDDLを生成するコマンドラインツールを探しています。個々のDDLを表示するためのGUIツールにアクセスでき、それらを切り取って貼り付けることもできますが、データベース内のすべてのテーブルを調べて、CVSにチェックインできる素敵なテキストファイルを生成するものが必要です。
Sybaseから提供された、というツールを使用してみましたddlgen
が、次のような例外が発生しました。
これはあまり役に立ちませんでした。私はこれを行うための素晴らしいPerlishの方法があるに違いないと考え続けていますが、それがどうなるかはわかりません。
sql - GORM クラスから生成された DDL でフィールドの順序を指定しますか?
GORM を使用して、Groovy クラスからデータベースの DDL を生成します。これは素晴らしいことです。ただし、生成された SQL 内のフィールドの順序は、クラス内のフィールドの順序と同じではありません。たとえば、クラスを作成すると
次の SQL が生成されます (MySQL の場合)
フィールドはアルファベット順にソートされています(自動生成された id および version フィールドの後)。この例ではこれで問題ありませんが、フィールドの順序で重要なコンテキスト情報が含まれる、より幅の広いテーブルがいくつかあります。
これが私の質問です: SQL のフィールドを groovy クラスの宣言の順序で並べ替えるように GORM に指示するにはどうすればよいですか?
c# - SqlCeCommandオブジェクトを介してSQLサーバーコンパクトエディションのすべてのテーブルインデックスを無効にするにはどうすればよいですか?
SqlCe データベース (バージョン 3.5、ああ、C# 3 を使用) に大量の一括挿入を実行しようとしています。これを行うさまざまな方法を試しました (テーブル アダプターの挿入、準備されたパラメーター化されたクエリ、sqlceresultset の挿入など)。私が多くのサイトで読んだように、最速の時間はテーブル ダイレクト モードで SqlCeResultSet オブジェクトを使用したときでした。
挿入を行う前に、必要なテーブルのすべてのインデックスを無効にすることで、これをさらに高速化したいと考えています (後で再構築します)。ALTER INDEX ステートメントを機能させるのに問題があります (これまで使用したことがないので、単純なものを見落としていると確信しています)。
基本的に、私は SqlCeCommandObject を作成し、次の方法で変更ステートメントを設定しました (接続オブジェクトは既に設定されており、開いているなど):
このコードを実行しようとすると、次のエラーが発生します。
クエリの解析中にエラーが発生しました。[ トークン行番号 = 1、トークン行オフセット = 7、エラーのトークン = INDEX ]
alter ステートメントの INDEX キーワードを理解していないように思えます。これはSqlCeではサポートされていませんか?
ありがとう
[更新] - 他の DDL ステートメント (DROP INDEX、CREATE INDEX など) を試しましたが、どれも機能しないようです。DDLステートメントに関する限り、SSCEでサポートされているものとサポートされていないもののリストを見つけようとして、あちこちを検索してきました。運がない。誰もこれのための良いリソースを知っていますか? sqlce コンパクト バージョン 3.5 に関する MS ドキュメントは、まったく役に立たなかったと言わざるを得ません...
c# - 公開時にソースコードを難読化する(C#)
私たちは、お客様に公開されている多くの製品に取り組んでいます。ただし、C#アプリケーションを公開する場合は、リフレクターなどを使用してすべてのdllを逆コンパイルできます。
公開時にdllを暗号化する簡単な方法があるかどうか疑問に思いました。このようにして、クライアントがコードを逆コンパイルすることを心配することなく、dllを公開できます。
ps:これをビジュアルスタジオに統合することができれば、それは素晴らしいことです。
編集:二重投稿について申し訳ありませんが、それが「難読化」と呼ばれていることを知りませんでした。
oracle - ストアドプロシージャでテーブルを切り捨てる
Oracleシェルで以下を実行すると、正常に動作します
しかし、ストアドプロシージャに入れようとすると
それは失敗します
なんで?
nhibernate - Fluent Nhibernate スキーマ生成
S#arp アーキテクチャの一部として FluentNhibernate をいじっています。以下はマッピングの例です。
次に、Nhibernate スキーマ生成を使用して、ddl をファイルに出力します。
ここまでは順調ですね。ただし、このテーブルに対して生成された ddl は一致せず、実際にはエラーが含まれています。
- Enum State は、強制的に INT を使用しようとしたにもかかわらず、文字列として表されます
- 電話番号の長さがマッピングと一致しません。
これをどのようにデバッグするのだろうと思っていました。これは FluentNH のマッピングの問題ですか、それともスキーマ ジェネレーターの問題ですか。生成されたxmlを出力できれば、検証できます。誰もこれを行う方法を知っていますか?
ありがとう、
sql-server - SQLServer2005のIFNOTEXISTSステートメント内でDDLが正しく実行されない
かなり複雑なデータベースがあり、DBの既存の部分がすでに実装されている場合とされていない場合がある、さまざまなサーバーに展開する必要があります。この不測の事態を回避するために、次のテストを設定しました。
そして、最終結果は常に次のようになります。
IFステートメントをテストすると、正しく機能します。
同様に、CREATETABLEスクリプトをテストするとき。しかし、CREATE TABLEスクリプトをbegin..endブロック内に配置すると、毎回失敗します。そして、私は全面的に問題を抱えています。この方法を使用するほとんどすべてのテーブルが失敗します。