1

これを使用していますが、これが機能しない理由がわかりません。SSMS は、構文が正しくない以外に有用なメッセージを表示しません。

DECLARE @columnSeed DECIMAL
SELECT  @columnSeed = MAX([seeded_column]) + 1 FROM [table] (nolock) WHERE [conditions]
DECLARE @Temp_Table TABLE ([seeded_column] varchar(35) IDENTITY(@columnSeed, 1), [more columns])

あるテーブルの列から最大値を取得し、その前の最大値でシードされた ID 列を持つ一時テーブル変数を作成したいと考えています。

編集:OK、動的SQLについて掘り下げた後、うまくいくはずのものがあると思いますが、まだうまくいきません:

DECLARE @columnSeed DECIMAL
[@columnSeed set properly]
EXECUTE sp_executesql 
      N'DECLARE @Temp TABLE (seeded_column decimal IDENTITY(@seed, 1) NOT NULL [more columns])',
      N'@seed decimal',
      @seed = @columnSeed;

私が今得たすべての情報は、「@seed」の近くで構文が正しくないということです

4

2 に答える 2