必要条件は、ストアドプロシージャから処理された行ごとに一意の値を返します。 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:空の行を生成しますか?
- 12. SQL Serverで一意のMD5ハッシュインデックスを作成する方法は?
- 13. このSQL Serverクエリを書き込む方法:一意の行に値を追加しますか?
- 14. 一意の顧客IDごとに1行を返すSQLクエリ
- 15. SQL Server 2012:一意の番号を持つ行を更新します。
- 16. SQL Serverの2番目のテーブルの各行の値を比較しますか?
- 17. Oracle SQL - 結果セットの各行に、列の値に応じて一意の識別子を与えます。
- 18. T-SQLを使用してSQL Serverコンピュータを一意に識別
- 19. 各グループの一番上の行を返すSQLクエリ
- 20. SQL Server、MySQLデータベースで一意制約を作成する
- 21. Codeigniterカレンダーを変更して各日付の一意のURLを生成する
- 22. Sql Server 2008テーブルから一意の行を選択
- 23. SQL Serverのパーティション化 - 一意のインデックスエラー
- 24. チェックボックスの値に一意の配列ベースを生成する
- 25. SQL Serverテーブルから各カテゴリの行数を取得します
- 26. ループの各テーブル行に一意のクラスを与えます
- 27. 一致する行のみを返すSQL Server
- 28. SQL Server:テーブル名の一意性
- 29. SQL Unionサブクエリの一意のID - ダブル結果を返します
- 30. コードが別のテーブルに存在しないときに各行ごとに一意の文字列を生成
ここをクリックしてください:http://stackoverflow.com/questions/17839420/generate-guid-for-every-row-in-a-column – swe
答えは、ストアドプロシージャを使用する予定のコンテキストによって異なります。 –
SPで何が起こっていて、どのように値を返すのですか?たとえば、SPの最後にSELECTステートメントがある場合、1つのアプローチをとることができます。出力パラメータを介してテーブル変数を返す場合は、別のアプローチを使用できます。 –