これを使用していますが、これが機能しない理由がわかりません。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」の近くで構文が正しくないということです