問題タブ [sqlclr]

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 に答える
373 参照

c# - SQLCLR Community Extensions または共通ライブラリ

SQLCLR の Regex 置換および一致関数と tvf を 5 回目の作成を終えたばかりの私は、データベースに必要な最も一般的なものの、提供されていない SQLCLR の共通のコミュニティ拡張機能のセットがあるかどうかをじっくりと考えました。

たとえば、Powershell には、パッケージには含まれていない多数の追加機能をカバーする優れた一連のコミュニティ拡張機能があります。それなしでは Powershell を使用しません。

おそらくSQLCLRにも似たようなものがあると思いました。私は次のようなものを探しています:

  • 正規表現のサポート (isMatch、Replace、Match)
  • Base64 エンコード/デコードのサポート
  • 文字列の書式設定 (日時、バイト配列、int、浮動小数点数、小数など)
  • ハッシング、任意のアルゴリズムによる暗号化 (SQL 2k5、2k8 はいくつかの基本的な機能をサポートしていることを知っていますが、SHA2 はサポートしていません。それはどうしたことでしょうか?)
  • 一般的な追加集計。OR ビット、AND ビット、cat 文字列 (String.Join)
  • 圧縮・解凍

私たち全員が何度も何度も書いている、このような共通のルーチン機能を備えたライブラリを知っている人はいますか?

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

.net - SQLCLR 更新を (CI) サーバーにプッシュする方法

SQLCLR を使用して、SQL 2005 サーバーと WinForm クライアントの間で .NET コードを再利用しています。

このコードには .NET 2.0 を超える依存関係があります。つまり、これらのアセンブリをサーバー マシンに追加する必要があります (例: CREATE ASSEMBLY)。

CI ビルドの一部としてこれを実行しようとしていますが、どの方法が最も効果的か疑問に思っています。

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

sql-server - CLR関数の作成時にエラーが発生しました

2つの静的メソッドを含むC#クラスを作成し、SQL 2005でアセンブリを正常に作成しました。そのアセンブリからテーブル値関数を作成しようとすると、次のエラーが発生します。

メッセージ6509、レベル16、状態36、手順、2行目
HRESULT0x80004005を使用してアセンブリ''からメタデータを収集中にエラーが発生しました。

同じdll内にあり、正常に動作しているように見える他のCLR関数があります。他の関数が実行していることをエミュレートしようとしましたが、この関数を機能させることができないようです。

オンラインのすべてのドキュメントは役に立たないようです

0 投票する
3 に答える
22275 参照

sql-server - CLRトリガーで現在実行中のコマンドのSQLServerユーザー名を取得するにはどうすればよいですか?

SqlContext.WindowsIdentityは、コマンドを実行している現在のユーザーを(CLRトリガーで)返すことを知っていますが、これはWindowsで認証されたユーザーに対してのみ機能します。代わりにSQLサーバーユーザーの場合、ユーザー名を取得するにはどうすればよいですか?どんな助けでも大歓迎です。

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

.net - SqlserverでのCLR統合で考えられる問題は何ですか?

私は sqlserver での CLR 統合の使用に関する記事を読み、潜在的な問題があればそれは何かと考えていました。私の考えは、レガシーデータベースの潜在的な不良データを検証するために使用していました。例として、電話番号列の人の名前があります。

編集: 問題はないと思いますが、それについて多くの議論が見られるものではなく、後で問題を引き起こす可能性のある缶ワームを開けないようにしたいと考えています. 私が尋ねる理由は、私がそれについて尋ねたとき、DBA が私を狂ったように見たからです。

0 投票する
3 に答える
1376 参照

sql-server - 外部 (CLR) SQL Server トリガーに引数を渡すことはできますか?

SQL Server にトリガーがありますが、引数を CLR コードに渡す必要があります。つまり、トリガー コンテキストで提供されていない情報です。

このようなことは可能ですか?

もちろん、これらの引数は静的です。

引数の順列の数は離散的ですが、CLR アセンブリで個別のクラスまたは関数を作成するのは扱いにくく、別のトリガーが必要になるたびに回避したいコンパイル/デプロイ手順が必要になります。

0 投票する
8 に答える
513 参照

c# - 負のSQL結合の問題

結合を使用して 2 つのテーブルからデータを選択する必要があります。これはかなり単純で、ここで問題はありません。この問題は、参加しようとしているフィールドが 2 つの個別の外部キーとして使用されている場合に発生します (これは私が設計したものではありません)。したがって、結合する ID フィールドは正または負の数値です。

正の数値の場合は table_2 テーブルの ID_1 に関連し、負の数値の場合は table_2 テーブルの ID_2 に関連します。ただし、ID_2 は正の数になります (外部キーに負として格納されている場合でも)。明らかに、これらを強制する制約はありません-したがって、本質的には実際の外部キーではありません:/

私が使用しているSQLは次のようになり、正の数には問題ありません。

この負の側面を結合にどのように組み込むか。これは可能ですか?理想的には、自分のニーズに合わせてテーブルを変更したいのですが、どうやらこれは有効なオプションではありません。私は元気で、本当に立ち往生しています。

私が持っていた他の唯一のアイデアは、これらの奇妙なものを処理するための別のSQLステートメントです。これはすべて、C# の clr sql によって実行されています。別の SqlCommand をコードに追加すると、処理が遅くなる可能性が高いため、すべてを 1 つのコマンドにまとめたいと思います。

あなたの入力は大歓迎です、ありがとう:)

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

sqlclr - SQL CLR ストア プロシージャを使用してテーブル レコードを挿入するベスト プラクティスはありますか?

最近、一連の複雑な C# ベースのスケジューリング ロジックを SQL CLR ストアド プロシージャ (SQL Server 2005 で実行) に変えました。次の理由から、コードが SQL CLR の優れた候補であると確信しました。

  • ロジックには、SQL Server からの大量のデータが含まれます。
  • ロジックが複雑で、TSQL を使用して実行するのが難しい
  • スレッド化や同期化、またはサンドボックスの外部からのリソースへのアクセスはありません。

私たちのSPの結果は、これまでのところかなり良いです. ただし、ロジックの出力は複数のデータ テーブルの形式であるため、sp の結果として単一の行セットを返すことはできません。代わりに、このコードでは、C# ジェネリック コレクションの各レコードを SQL テーブルに保存するために、foreach ループに多数の "INSERT INTO ...." ステートメントを使用しています。コード レビュー中に、SQL CLR 内のインライン SQL INSERT アプローチがパフォーマンスの問題を引き起こす可能性があるかどうかについて懸念を表明した人がいて、(C# ジェネリック コレクションから) データをダンプするための他のより良い方法があるかどうか疑問に思いました。

それで、何か提案はありますか?

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

sql-server - select ...fromtableステートメントからスカラー値CLRUDFを呼び出すことはできません

スカラー値のCLRUDF(ユーザー定義関数)を作成しました。タイムゾーンIDと日時を受け取り、そのタイムゾーンに変換された日時を返します。

単純な選択から問題なく呼び出すことができます: "select dbo.udfConvert('Romance Standard Time'、@datetime)"(@datetimeはもちろん有効な日時変数です)

しかし、テーブルから日時を渡すと呼び出すと失敗します:「sometableからdbo.udfConvert('Romance Standard Time'、StartTime)を選択してください」(列StartTimeはもちろんdatetime型の列です)

エラーメッセージは次のとおりです。「列「dbo」またはユーザー定義関数のいずれかが見つからないか、「dbo.udfConvert」を集約するか、名前があいまいです。」

このメッセージは、スペルを間違えた初心者向けですが、一方のケースでは機能し、もう一方のケースでは機能しないため、スペルミスはないと思います。

何か案は?

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

sql-server-2008 - SQL Server 2008 (CLR) トリガーで「挿入」テーブルと「削除」テーブルの xml/text 列を参照できる方法はありますか?

SQL Server 2008 の clr トリガーで "Select * from deleted" を実行すると例外が発生します。トリガーで削除および挿入されたテーブルから xml/text 列にアクセスできる方法はありますか?