sql >> Database >  >> RDS >> Mysql

SQL-kloonrecord met een unieke index

Niet tenzij u in dynamische SQL wilt komen. Aangezien je "schoon" schreef, neem ik aan van niet.

Bewerken: Aangezien hij om een ​​dynamisch SQL-voorbeeld vroeg, zal ik er een poging toe doen. Ik ben op dit moment niet verbonden met databases, dus dit is uit mijn hoofd en zal vrijwel zeker herzien moeten worden. Maar hopelijk vat het de geest van de dingen:

-- Get list of columns in table
SELECT INTO #t
EXEC sp_columns @table_name = N'TargetTable'

-- Create a comma-delimited string excluding the identity column
DECLARE @cols varchar(MAX)
SELECT @cols = COALESCE(@cols+',' ,'') + COLUMN_NAME FROM #t WHERE COLUMN_NAME <> 'id'

-- Construct dynamic SQL statement
DECLARE @sql varchar(MAX)
SET @sql = 'INSERT INTO TargetTable (' + @cols + ') ' +
    'SELECT ' + @cols + ' FROM TargetTable WHERE SomeCondition'

PRINT @sql -- for debugging
EXEC(@sql)


  1. Databaseversleuteling:waarom en waar u gegevensversleuteling nodig heeft

  2. Optimizer-beperkingen met gefilterde indexen

  3. Een MySQL-database dupliceren op dezelfde server

  4. Gebruikersinvoer, opschonen en ontsmetten voor verzending naar db