問題タブ [smo]
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.
properties - T4テンプレートへのプロパティの追加-サーバー、データベース、テーブルの選択
皆さん、
社内のORMをサポートするためにデータベースからクラスファイル(テーブルごとに約7つ)を生成するためのT4テンプレートをいくつか作成したいと思います(質問しないでください-長い話と歴史的な理由.....)
私が本当にやりたいのは、メインのTTテンプレートに、ファイルを作成するサーバー、データベース、およびテーブルを視覚的に選択するためのプロパティ(CodeSmithのテーブルピッカーのようなもの)を用意することです。
それは存在しないようです(または存在しますか?)ので、次善の策は、サーバー、データベース、テーブル名に3つの文字列プロパティを使用し、SMOを使用してそのテーブルに接続し、必要な列データを取得することです。
Oleg Sychの例に従おうと試み、次のことを思いつきました。
しかし、SMOを使用して指定されたサーバーに接続するコードブロックでこれらのプロパティを参照してデータを取得するにはどうすればよいですか?
Server()コンストラクターの括弧内に入れてみました<#= serverName #>
が、うまくいきません:-(ここで少し立ち往生しているようです......評価できない場合にプロパティを持つことのポイントは何ですかそしてそれらの値を使用してください!:-)
テイカーは?
マーク
sql - プログラムによる SQL Server エディションの検出
SMO で C# を使用しており、接続している SQL Server のエディション (エンタープライズ、標準など) を検出しようとしています。バージョン情報を取得する方法は知っていますが、SQL Server のバージョンしかわかりません (たとえば、SQL Server 2008 と SQL Server 2005 など)。
実際の製品エディション (エンタープライズ、スタンダードなど) を入手する方法を知っている人はいますか?
一部の SQL Server 機能はエンタープライズ専用であるため、この情報が必要です。したがって、それらを呼び出して例外をキャッチすることもできますが、事前に検出することをお勧めします。
ありがとう!
sql-server - SMO を使用した SQL インストール スクリプトの実行。必要な代替ソリューション
Microsoft Sql Management Objects (SMO) dll を使用する Web アプリケーションがあります。リモート マシンのライブラリを再配布する方法を考えています。
私が理解しているように、これらにはSQLサーバーまたはSQLエクスプレスが付属しています-これはリモート(共有)Webサーバーにはありません。ホストにそれらをインストールするように依頼することはおそらく問題外なので、それらを動的にロードすることは可能ですか?
以下のエラーを参照してください-
ファイルまたはアセンブリ 'Microsoft.SqlServer.Smo, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。
または、誰かが以下のスニペットの回避策を提供できる場合、それも役立ちます。script 変数は、最後まで読み取られた SQL インストール スクリプトです。これの良いところは、SQL からの各実行文字列の出力です。もちろん、すべてを1つのチャンクで実行することもできますが、SQLが正常に実行されているという視覚的なフィードバックを1行ずつユーザーに提供しません。
この種のことを実行できるストアド プロシージャはありますか? または、完全な権限なしでインストール スクリプトを実行する別の方法。
sql-server - SQL 2005 SMO - 参照テーブルを見つける
一部の主キーを非クラスター化からクラスター化に変更する必要がありますが、他の外部キーから参照されているため、制約を削除できません。
DB 内のすべてのテーブルをループせずに、外部関係の一部として親テーブルの主キーを参照するテーブルを見つけるにはどうすればよいですか? それらの制約を無効にし、PK を変更して再度有効にする必要があります。
アップデート:
これを行うためにプレーン SQL を使用したくはありませんが、SMO のみを使用します。
マーク、私は次のようなものが必要であることによって、ForeignKeys について知っています:そのうちの1つが私のテーブルを参照しているかどうかを確認します.(スケーラブルではありません)
sql-server - SQL Server SMO を使用するには特別なアクセス許可が必要ですか?
あるデータベースから別のデータベースにテーブルをコピーする SMO コードがあります。デスクトップアプリでは問題なく動作します。サービスにまったく同じコードを入れると、エラーが発生します。エラーは本当にわかりにくく、アクセス許可についてのヒントはありません。
SMO オブジェクトに何らかのセキュリティを使用する必要があるかどうか疑問に思っていました。セキュリティコンテキスト?Windows資格情報..など?SQL Server のセキュリティについて話しているのではなく、SMO メソッドの使用に関するセキュリティについて話しているのです。
types - System.types から SMO.DataTypes への変換
SMO を介して DataTable から SQL テーブルにテーブルを作成するプロジェクトがあります。
現在、列のデータ型は System.Type から SMO.DataType に変換されません。Case ステートメントを使用してこれを行うことができますが、よりクリーンなソリューションを望んでいました。たぶん、TypeDescriptor.GetConverter(targetDataType) に関係する何か。
これは System.types と SQL.DataTypes の間で機能しますが、SMO.DataTypes に変換できません。
提案やヒントはありますか?
ティア
c# - C# および SMO による既存のテーブルの確認と削除
名前で SQL テーブルを検索しようとしていますが、存在する場合は削除します。これはすべて、SMO を使用して C# で行う必要があります。
もう少し複雑にするために、テーブルには「dbo」以外のスキーマもあります。
最終的に、テーブルは SMO を介して再作成されます (私はこれを機能させています) が、再作成する前にテーブルが存在しないことを確認する必要があります。
私が見たすべての例は、すべて同じコンテキストでテーブルを作成してから削除しているようです。私の場合、テーブルは以前のセッションで作成され、入力されています。
c# - c# で smo を使用してデータ ファイルとログ ファイルが保存されている場所を見つける方法
C# で SMO を使用して、データとログ ファイルが保存されている場所を見つける方法を教えてください。