問題タブ [sql-variant]

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

c# - SQL Serverでvarcharよりもsql_variantを使用する利点はありますか?

現在、データベーステーブルを次のように設定しています(EAV-ビジネス上の理由は有効です)。

  • Id-int(PK)
  • キー-一意、varchar(15)
  • 値-varchar(1000)

これにより、キーと値のペアとして混合値をデータベースに追加できます。例えば:

私のC#コードでは、ADO.Netを使用して値を文字列として取得し、コードで必要に応じて変換します。reader.GetString(2);たとえば、...。Int32.ParseInt(myObj.Value);値の列をデータ型に変更することでテーブルを拡張することを検討していますがsql_variant、これがどのようなメリットがあるのか​​わかりません。基本的に、私のの列をsql_variantvsにすることに利点はありますvarchar(1000)か?


より明確にするために、私はどこかでsql_variantがnvarchar(4000)として呼び出されたクライアントに返されることを読みました(痛い)!しかし、それを返す前に、そのタイプにキャストすることはできませんでしたか?明らかに、私のコードは、値を文字列値ではなくオブジェクトとして格納するように調整する必要があります。sql_variant私の現在の状況で他のタイプと比較して使用することの長所/短所は何だと思いますか?ああ、そして私が保存しようとしているのは、値の列に日時、文字列、および数値型(int、decimalなど)だけであることに言及する価値があります。ブロブや画像などを保存する予定はありません。

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

c# - sql_variant 列のテーブル値パラメーターに 'object' 型のパラメーターを渡す

次のように定義された SQL Server 2012 のテーブル値パラメーターがあります。

おおよそ次のようなコードを使用して C# で呼び出します。

ExecuteNonQuery次に、呼び出し時に SQL Server から次のエラーが表示されます。

列「値」のタイプはサポートされていません。タイプは「オブジェクト」

マイクロソフトの既知のバグとして特定された 3 年前に、同じ問題に遭遇したを見つけました。ただし、バグへのリンクは壊れています。バグのステータスまたは潜在的な回避策に関する最新情報があるかどうかを知っている人はいますか? 現状では、このバグは実際にsql_variantフィールドの価値を殺しています。

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

sql - このselectステートメントはどのように機能しますが、このupdateステートメントはVFP 9では機能しませんか?

概要

Visual Fox Pro 9(VFP9)でステートメントを記述して、行を更新しようとしていますselect(最終的には他のいくつかのレコードで、最初にselectステートメントを記述しましたが、うまく機能し、期待どおりの結果が得られました。

しかし、私はVFP9構文に少し慣れていないので、2013年には誰が参加しないのでしょうか。UPDATEを含むが実際の非foxproseSQLselectのように動作することを期待しています。UPDATE INNER JOIN

私のselectステートメント、それはうまくいきます。

私のUpdateステートメント(私のselectステートメントを含み、機能しません):

Microsoft Visual FoxProというエラーが表示されますCommand contains unrecognized phrase/keyword.。何について話しているのかわかりません。クエリの4/5は、元のselectステートメントです。

0 投票する
0 に答える
1829 参照

entity-framework-5 - 最初にエンティティ フレームワーク コードで sql_variant を使用する必要があります

これらのパラメーターによって C# でメソッドを呼び出すには、データベースで動的パラメーター値を定義する必要があります。ところで、int、bool、string、datetime などの単純な変数を使用していますが、残念ながら、sql_variant フィールドからモデルのオブジェクトに値を取得できません。

私はEFコードファースト5とSQL 2008サーバーを使用しています

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

sql - sql_variant を避けますが、何を使用しますか?

私のデータベースには、テンプレートフォームと値を持つ実際のフォームが含まれています。ユーザーは、さまざまな種類のフィールドを含むカスタム テンプレート フォームを作成できます。値は別のテーブルに保持します。

フォーム テーブル:

FormField テーブル:

値テーブル

ユーザーがフォームをデザインすると、 TemplateId を持つフォーム テーブルに保存されますNULL。また、FormFields テーブルには、このフォームに使用されるフィールドが格納されます。後でユーザーがそのテンプレートを使用して実際のフォームを作成すると、このフォームの実際の値 (FormFields から取得) が Values テーブルに格納されます。現在、値テーブルの値列はsql_variantタイプのようです。使用しない場合sql_variant、どうすればこの問題を解決できますか?

Ps: 値の種類ごとに異なるテーブルを作成するのはどうですか? TableIntValues、TableBoolValues など?

http://www.jotform.com/は、私のプロジェクトの良いサンプルです。

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

c# - 日付でデータをフィルタリングしますが、日付が一致しない場合はクエリ内の 1 つを除くすべての値を表示します [SQL & C#]

私はこのクエリにかなりこだわっています。まず第一に、私は何を達成したいですか?3 つのテーブル (既に正しい) を内部結合し、日付が当月であるかどうかに応じてデータを除外したいと考えています。日付が当月でない場合、フィールド「bedrag」は入力せず、ゼロに設定する必要があります。テーブルのすべても表示されるはずですが、「bedrag」フィールドは変更しないでください。

日付が現在の月からのものである場合は、「bedrag」に追加し (それを行うためのグループに注意してください)、すべても表示する必要があります。今、私のクエリは、今月のものではないデータがある場合を除いて、すべて正しいことを行います。その後、レコードが失われるか、表示されなくなります。

テーブルのデザイン: http://imgur.com/vhONCq1

クエリ:

注: これは通常の SQL ではなく、Access DB から DAL および BLL レイヤーにデータを取得するために C# で使用されるバリアントです。

クエリでどのメッセージが表示され、どのように問題が発生するかを確認できる例: http://imgur.com/V0N6Wbk

記録が今月のものでない場合、すべてのデータを表示する方法を教えてもらえますか?

ありがとう!

0 投票する
0 に答える
534 参照

sql-server - sql_variant または変換されたデータ型を返すスカラー関数?

次の関数を与える:

@val1 と @val2 で受け取った同じデータ型を返すことは可能ですか?

例: dbo.inlineMax(1,2) は int を返し、dbo.inlineMax(GETDATE(),GETDATE()+1) は datetime? を返します。

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

sql - コンマの後の値を切り捨てる Sql_variant 列を Try_casting

sql_variant タイプの列「値」があります。価値がある

選択しようとしたら

私は値を取得します

一部のデータを失うことなく sql_variant 型をキャストするにはどうすればよいでしょうか? SUBSTING 関数を使用して値の一部を抽出する必要があるため、nvarchar に変換する必要がありました。

どんな助けでも大歓迎です!!!

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

python-2.7 - sql_variant列のPyMsSQL読み取り不良データ

MS SQL Driver で Python 2.7 用の pymssql を使用しています。sql_variant 列を持つテーブルでいくつかのクエリを実行しているときに、不正なデータが取得されます。データをキャストすると、正しい値を取得できます。明示的な CAST をスキップする方法はありますか。

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

mysql - MariaDB はどの SQL バリアントを使用しますか?

リレーショナル データベース管理システムでは、SQL の特定のバリアントを使用するのが一般的です。たとえば、SQL Server は Transact-SQL 別名 T-SQL を使用します。

MariaDB は MySQL (RDBMS) に基づいており、MySQL が使用する SQL バリアント自体も明らかに MySQL と呼ばれていることを理解しています (この質問によると)。MariaDB も MySQL 言語を使用していると思いますか?

いくつかの Google 検索を試しましたが、何も見つかりませんでした。RDBMS と言語が混同されているため、注意が必要です。ほとんどの結果は、MariaDB と MySQL (RDBMS) を比較しているだけです。