問題タブ [table-valued-parameters]

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

sql - ワイルドカードでテーブル値パラメーターを使用しますか?

シナリオは...

私はASP.netVisual Basicで、ユーザーが作成した製品リスト (以下「投稿」と呼びます) を表示する Web サイトを開発しています。このサイトには、ユーザーが自分の投稿をより簡単に見つけられるようにする検索ボックスがあります。検索ボックスは、ユーザーが特定のキーワードを入力できるように設計されており、よりカスタマイズされた検索が提供されることが期待されます。例えば:

検索ボックスの例

上記の例では、ユーザーは、"John Smith" という名前に一致する著者と "Crime" および "Suspense" というタグを持つ本を検索することを指定しています。

手順:

  1. 私の SearchBoxManager クラスは、これらのキー名 (Author、Tags) とキー値 (John Smith、Crime、Suspense) を取得します。
  2. これらのパラメーターを使用して SQL クエリを実行し、完全一致を探します。
  3. キー値から各単語を抽出して、個別に検索できるようにします。
  4. これは私が問題を抱えているところです。これらのパラメーターを使用して SQL クエリを実行し、完全に一致しないものを探します (たとえば、'%John%'、'%Smith%')。このステップでは、関連性に基づいて結果のシステムを作成します。これは私の最初の関連性アルゴリズムであるため、間違った方法で行っている可能性があります。

問題...

3 番目のステップが適切に機能するように、キー値から分離された単語の各セットをテーブル値パラメーターに配置し、ワイルドカード '%' で囲まれた SqlCommandText でそのテーブル値パラメーターを使用したいと考えています。

つまり、各キー値の単語数は毎回変わる可能性があるため、それらを何らかのテーブル値パラメーターに配置する必要があります。また、どうにかしてそれらをつなぎ合わせてクエリ文字列で直接使用することもできると思いますが、少し面倒になったので途中でやめました。


質問...

  • テーブル値パラメーターでワイルドカードを使用できますか?

また、ローカル検索ボックスの関連性ランキング アルゴリズムを開発したことがある、またはそれを知っている方がいらっしゃいましたら、正しい方向に向けていただければ幸いです。

前もって感謝します。

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

sql - SQL Server のテーブル値パラメーター エラー

会社のプロジェクトのレポート モジュールに取り組んでいます。アプリケーションには ORM を使用していますが、SSRS への移行を見越して、レポート用のストアド プロシージャを作成することにしました。

これらのストアド プロシージャには、テーブル値パラメーターの入力が必要です。そのため、テーブルタイプを作成しました:

次の SQL Server ストアド プロシージャがあります。

ストアド プロシージャを変更しようとすると、継続的にエラー メッセージが表示される

なぜこれが起こっているのかわかりません。スカラー型を使用した場合 (および一致するようにコードを更新した場合) は機能します。ただし、TVP を使用しようとすると、ストアド プロシージャをコンパイルできません。

価値のあるものとして、タイプを追加しましたが、まだアクセス許可を設定していません。ただし、それによってコンパイル エラーが発生するとは思いません。実行時にのみエラーが発生します(以前に対処しました)。

誰もこの問題の経験がありますか? ありがとう!

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

asp.net-mvc - mvcエンティティフレームワーク4のコントローラーで2つのテーブルを返すストアドプロシージャを呼び出すにはどうすればよいですか?

2 つのテーブルを返すストアド プロシージャがあります。MVC のコントローラーからこのストアド プロシージャを呼び出すにはどうすればよいですか。(私はEntity Framework 4を使用しています)


ストアド プロシージャ:


ここで、'list' は、テーブル値パラメーターを渡すためのユーザー定義のテーブル タイプです。

コントローラーで:

ビュー: 段落 ID は「sdf」で、ボタン ID は「asd」です!!!!!

脚本:

Result は Item テーブルのコンテンツのみを表示します。ストアドプロシージャから2つのエンティティを取得するには? 最初の選択ステートメントのみを取得しています。これを解決するのを手伝ってくれる人はいますか..?

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

c#-4.0 - PetaPoco を使用してテーブル値パラメーターをストアド プロシージャに渡す

PetaPoco を使用して SQL Server 2008 R2 ストアド プロシージャを呼び出そうとしています。

ストアド プロシージャは、テーブル値パラメーターを受け入れます。

テーブル値パラメーターを使用して、petapoco でストアド プロシージャを呼び出すにはどうすればよいですか?

ここで私がやろうとしていること:

このコードは私に例外を与えます:

着信表形式データ ストリーム (TDS) リモート プロシージャ コール (RPC) プロトコル ストリームが正しくありません。
パラメーター 3 ("@0"): データ型 0x62 (sql_variant) には、型固有のメタデータに対して無効な型があります。

パラメータ値を設定すると

次に、次のような例外が発生します

私のパラメータを次のように定義すると

その後、例外が発生します

列、パラメーター、または変数 @0。: 構造化データ型が見つかりません。

SqlParamSQL Server にデータを送信できるように、テーブル値のパラメーターを使用して定義するにはどうすればよいですか?

解決策:

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

sql-server-2008 - TVP の依存関係により SSDT の発行がブロックされました

ユーザー定義のテーブル値の型への変更を公開しようとしていますが、SSDT の公開は次のエラーで失敗します。

TVP は

新しいローカル DB に公開することはできますが、既存の DB をアップグレードすることはできません。理由はありますか?

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

sql - SQL Server 2008 + TVP マージ

テーブル値パラメーターを使用してレコードをマージしていますが、その上、TVP テーブルに存在しないレコードを DB から削除する必要もあります。誰でも親切に助けてください。ありがとう。

別の方法として、最初にすべてのレコードを単純に削除してから挿入することもできますが、レコードの量が最大で数千になる可能性があるため、パフォーマンスが懸念される可能性があります。

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

sql-server-2008 - 複数の行と列を作成する TSQL 分割関数 (テーブル値関数)

2 つの異なるテキスト区切り文字を使用する文字列からテーブル全体を返したいと思います。行はセミコロン、列はカンマ。テーブル値関数でこれを行うことができますが、データを解析して既存のデータセットに追加する方法を理解するにはあまりにも未熟です。

各行が他の行と同じ数の列を持っていると仮定して、データセット内の固定されていない数の列に対応できるようにしたいと考えています。データが文字列内にある順序は、列が出てくる順序である必要があります。願わくば、これが将来、区切られたインデックス付き文字列に幅広く適用できることを意味することを願っています。

例 (わかりやすくするためにキャリッジ リターンを追加 - これは単一の文字列です):

なる:

理想的には、分割関数は、データ セット内のカンマと同じ数の列に対応できます。

現在の分割文字列関数:

現在、次の SQL クエリを使用して関数を呼び出していSplitStringます。これは、単一の区切り記号に基づいてのみ分割され、単一の列のみが返されます。

繰り返しますが、この関数を 2 つの区切り記号を受け入れるように適応させ、それらの区切り記号を使用して行と列に分割したいと考えています。次に、テーブル値関数の戻り値を既存のデータ セットに追加する必要があります。