テーブルの値を 'UNKNOWN' + 0001の形式でユニークな値に更新しようとすると、次の値は 'UNKNOWN' + 0002になります。im runnign intoフィールドを更新しようとするといくつかの問題が発生します。フィールドをvarchar +インクリメントintで更新する方法
DECLARE @idtest VARCHAR(15)
SET @idtest = ''
UPDATE TABLE1
SET @idtest = ID = CONVERT(int,'UNKNOWN'+ CAST(@idtest + 1 AS VARCHAR(15)))
where ID is null or LTRIM(RTRIM(ID)) = ''
GO
どのような提案も素晴らしいでしょう。私は、2008 R2までサポートされているSQLのみを使用できます。
UPDATE:
WITH tempUpdateTable AS (
SELECT t1.*,
ROW_NUMBER() over (ORDER BY (SELECT NULL)) AS seqnum
FROM table1 t1
WHERE ID IS NULL OR LTRIM(RTRIM(ID)) = ''
)
UPDATE tempUpdateTable
SET ID= 'UNKNOWN' + RIGHT('000' + CAST(seqnum AS VARCHAR(255)), 4);
あなたはどんなエラーが発生しますか? –