我不明白爲什麼這不工作。','附近的動態查詢錯誤。 -.-
我使用動態SQL
這裏是我生成SQL語句:
OLD: SET @dSQL = 'DBCC CHECKIDENT([' + @TableName + '], RESEED, 0); SET IDENTITY_INSERT ' + @TableName + ' ON; INSERT INTO ' + @thisTable + '(' + @pkcolumns + ', '+ @columns + ')' + ' SELECT (' + @pkcolumns + ', '+ @columns + ') FROM ' + @oldTable +' GROUP BY ' + @pkcolumns + '; SET IDENTITY_INSERT ' + @TableName + ' OFF;'
NEW: SET @dSQL = 'DBCC CHECKIDENT([' + @TableName + '], RESEED, 0); SET IDENTITY_INSERT ' + @TableName + ' ON; INSERT INTO ' + @thisTable + @pkcolumns + ', '+ @columns + ' SELECT DISTINCT(' + @pkcolumns + '), '+ @columns + ' FROM ' + @oldTable + '; SET IDENTITY_INSERT ' + @TableName + ' OFF;'
由於是執行變量是這樣的過程。
@TableName DATA.HTI
@thisTable DATA.HTI
@oldTable [OR_JTU_2530].DATA.HTI
@columns [PARENT_HTI_ID], [OPERATION], [DISPLAY], [ACTIVE], [OFFSET]
@pkcolumns [HTI_ID]
@dSQL DBCC CHECKIDENT([DATA.HTI], RESEED, 0); SET IDENTITY_INSERT DATA.HTI ON; INSERT INTO DATA.HTI([HTI_ID], [PARENT_HTI_ID], [OPERATION], [DISPLAY], [ACTIVE], [OFFSET]) SELECT ([KPI_ID], [PARENT_KPI_ID], [OPERATION], [DISPLAY], [ACTIVE], [OFFSET]) FROM [OR_JTU_2530].DATA.HTI GROUP BY [HTI_ID]; SET IDENTITY_INSERT DATA.HTI OFF;
UPDATE: 集團通過刪除,插入不同
其實能把我這樣的選擇([列1]的東西,[列2],[欄3] )從,但你是正確的與小組通過我改變它disctinct並刪除(),只剩下它不同的 – Matthias