sql >> Database >  >> RDS >> Sqlserver

Alle beperkingen in een tabel laten vallen

Welnu, je kunt altijd de uitvoer van het onderste deelvenster kopiëren, in het bovenste deelvenster plakken en op F5 drukken. Of je kunt een string bouwen om direct uit te voeren:

DECLARE @sql NVARCHAR(MAX) = N'';

SELECT @sql += N'
ALTER TABLE ' + QUOTENAME(OBJECT_SCHEMA_NAME(parent_object_id))
    + '.' + QUOTENAME(OBJECT_NAME(parent_object_id)) + 
    ' DROP CONSTRAINT ' + QUOTENAME(name) + ';'
FROM sys.foreign_keys;

PRINT @sql;
-- EXEC sp_executesql @sql;

(Als je tevreden bent met de PRINT output, becommentarieer het en verwijder het commentaar van de EXEC . Houd er rekening mee dat de afdrukuitvoer wordt afgekapt tot 8K in Management Studio, maar de variabele bevat in feite de volledige opdracht.)

Ik weet ook niet hoe dit echt verband houdt met of je een opgeslagen procedure gebruikt of niet, of waarom je het probeert te doen "zonder voor SP te gaan" ... deze query kan worden uitgevoerd als een opgeslagen procedure of niet, het hangt allemaal af van hoe vaak je het gaat bellen, waar de procedure plaatsvindt, enz.



  1. com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:geen bewerkingen toegestaan ​​nadat de verbinding is gesloten

  2. SQLiteDatabase-fout, nutteloos logboek

  3. Ingevoegde gegevens werden niet opgeslagen in de phpmyadmin-database

  4. Postgresql - Hoe te versnellen voor het bijwerken van een enorme tabel (100 miljoen rijen)?