必要条件は、ストアドプロシージャから処理された行ごとに一意の値を返します。 1つの解決策は、ROW_NUMBER()関数を使用しているようです。もう1つはhereです。たぶん、Guidを含むソリューションがあるかもしれません。誰かが私にパフォーマンスと信頼性の高いソリューションをお勧めできますか? (あなたがユニークを指定すると)SQL Server:各行に一意の生成値を返します。
0
A
答えて
0
乱数はオプションではありません。
ROW_NUMBER
は、1行あたり8バイトの記憶域を占有します。uniqueidentifier
(NEWSEQUENTIALID()
シードGUIDからインクリメントするので、SQLのユニークな識別子はNEWID()
がNEWSEQUENTIALID()
より遅いされた状態でのGUIDである)を単にインクリメントするROW_NUMBER
より得るための16バイト構造とより高価です。テーブル変数またはテンポラリテーブルに
INSERT
を入力する場合は、IDENTITY
を使用できます。記憶域サイズは、列データ型のサイズです。整数型(ビットなし、小数点なし)でもかまいません。設定可能なオフセット(デフォルト1)から設定可能なオフセット(デフォルト1)に増加します。
これは、高速で信頼性の両方で、ROW_NUMBER
あなたのベストフィットを作るようです。
あなたのデザインの選択肢は、パフォーマンスだけではありません。合理的に構成されたSQLサーバーのインストールでは、速度の違いに気付かず、リソースが非常に限られていない限り、ストレージにボトルネックがあってはいけません。むしろ古いものです。benchmarks here
返された行の特定の順序を維持したり保障したりするのに役立たないことに注意してください。ORDER BY
最も外側のSELECT
が必要です。
関連する問題
- 1. 各JSON値に一意の名前を生成する方法
- 2. 各配列の値に一意の乱数を生成します
- 3. PHP MYSQL:一意の各エントリの行を返します
- 4. 異なるSQL Serverインスタンス間で一意のID列値を生成
- 5. SQL - クエリから生成された列の一意の値をカウントします。
- 6. SQL Server - 更新時に一意のシーケンシャル番号を生成する方法
- 7. Rデータフレーム各行に一意の値があります
- 8. 各インデックスで一意の値を持つ複数のシーケンスを生成する
- 9. SSRS:各行に一番左の行グループ値を繰り返します
- 10. SQL Server:空の行を生成しますか?
- 11. SQL Serverの2番目のテーブルの各行の値を比較しますか?
- 12. 一意の顧客IDごとに1行を返すSQLクエリ
- 13. Oracle SQL - 結果セットの各行に、列の値に応じて一意の識別子を与えます。
- 14. T-SQLを使用してSQL Serverコンピュータを一意に識別
- 15. SQL Server、MySQLデータベースで一意制約を作成する
- 16. Codeigniterカレンダーを変更して各日付の一意のURLを生成する
- 17. Sql Server 2008テーブルから一意の行を選択
- 18. SQL Serverのパーティション化 - 一意のインデックスエラー
- 19. SQL Serverテーブルから各カテゴリの行数を取得します
- 20. SQL Unionサブクエリの一意のID - ダブル結果を返します
- 21. SQL Serverのピボットクエリは一列のみを返します
- 22. テーブルを構成する一意の行のみを返します
- 23. SQL Serverで既定値またはバインド用のスクリプトを生成
- 24. SQLサブクエリから一意のIDを生成する
- 25. SQL Serverの番号を確認してから、C#で一意の番号を生成してください
- 26. カウント行年の各月 - SQL Serverの
- 27. SQLは行間の値を生成します
- 28. SQL Server 2008:DateDiff負の値を返す
- 29. 生成された一意のIDに値を連結
- 30. SQL Server:フィールド値の最初のインスタンスのみを返します
ここをクリックしてください:http://stackoverflow.com/questions/17839420/generate-guid-for-every-row-in-a-column – swe
答えは、ストアドプロシージャを使用する予定のコンテキストによって異なります。 –
SPで何が起こっていて、どのように値を返すのですか?たとえば、SPの最後にSELECTステートメントがある場合、1つのアプローチをとることができます。出力パラメータを介してテーブル変数を返す場合は、別のアプローチを使用できます。 –