テーブルに新しい主キーを入力する SQL スクリプトを作成しようとしています。
私が現在インターネット検索から持っているものは次のとおりです
DECLARE @IntVariable int;
DECLARE @Stringkey varchar(2);
DECLARE @SQLString nvarchar(500);
DECLARE @Intupdater nvarchar(500);
SET @IntVariable = 00000001;
SET @Stringkey = 'CD';
SET @SQLString = N'UPDATE Tri_Damen_Live.trimergo.calendar_details SET details_key = @Stringkey + @IntVariable';
SET @Intupdater = N'@IntVariable = @IntVariable+1'
EXECUTE sp_executesql @SQLString , N'@IntVariable INT' , N'@Stringkey VARCHAR(2)', @IntVariable, @Stringkey;
これで発生するエラーは
メッセージ 102、レベル 15、状態 1、行 1
「=」付近の構文が正しくありません。
メッセージ 137、レベル 15、状態 2、行 1
スカラー変数「@Stringkey」を宣言する必要があります。
私の問題についていくつか質問があります。誰かが私を助けてくれることを願っています
最初の質問: 私のint
増量剤が間違っているようです。int の更新変数ステートメントを作成する方法はありますか?
2番目: int を 00000001 と宣言しました。私がこれを行う理由は、キーが合計で 10 文字の長さのセットである必要があるためです (例 'CD00000001' など)。これはこのように機能しますか、それとも別の方法がありますか?
3 番目の質問: トピックに記載されているとおりです。「スカラー変数 "@Stringkey" を宣言する必要があります。」エラー。Int
stringkey 部分を削除しましたが、変数について同じエラーが表示されます。それらを上部で宣言し、同様に設定しました。私は何が欠けていますか?
サイド情報 :
この関数は、さまざまなテーブル サイズを持つ複数のデータベースに使用されます。したがって、一定量の更新ステートメントがないことを説明するには、この種の関数が必要です。
ここで作成される主キーは、Varchar(10)
常に 10 文字の長さの文字列 ( ) である必要があります。ばかげた要件のように思えますが、このシステムを使用することが選択されました。
これを実行するために Microsoft SQL Server 2012 を使用しています。