2016-12-21 17 views
0

テーブル内で、ランダム化された英数字の文字列を保持する新しい列を作成しました。私はNEWID()関数を使用しています。私の理解から、NEWIDはただ新しい行を作成する必要がありますが、すべての行が同じguidで終わります。更新クエリで同じGUIDを生成するSQL - NEWID()

私のコードは次のとおりです。すべての助けを事前に

DECLARE @random_guid 
SET @random_guid = NEWID() 
UPDATE this_table 
SET random_column = @random_guid 

ありがとう!

+3

更新する行を制限するには、 'where'節が必要です。現在、それはテーブルのすべての行を更新します。 –

+1

_variable_に単一の値を設定し、その行ごとにその_variable_を使用しています。関数を直接呼び出すと、すべての行に対して関数を呼び出す必要があります。 –

+0

現在、私はすべての行を変更する必要はありませんので、いくつかの行をテストするために 'where'句を使用していますが、最終的にすべての行を変更する必要があります –

答えて

4

おそらく、変数を最初に設定して使用している可能性があります。むしろ直接関数を使用する

UPDATE this_table 
SET random_column = NEWID(); 
+0

これは本当にありがとうございました。しかし、別の問題が生じました。私はパスワードのハッシュのための塩としてこれを使用していました(私はguidsが悪いことを知っていますが、私は突然多くのレコードのハッシュパスワードを与えなければならない最も簡単な方法です)。上記のコードのように私の更新ステートメントを設定した場合、random_columnの値が何に設定されているのかアクセスできますか? –

+0

@RobynDiasはい、あなたはおそらくあなたの新しい問題を別の質問を投稿したいかもしれません。 – Rahul