sql >> Database teknologi >  >> RDS >> Sqlserver

Slip alle begrænsninger i en tabel

Nå, du kan altid kopiere outputtet fra den nederste rude, indsætte det i den øverste rude og trykke på F5. Eller du kan bygge en streng til at udføre direkte:

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;

(Når du er tilfreds med PRINT output, kommenter det og fjern kommentaren til EXEC . Bemærk, at udskriftsoutputtet afkortes til 8K i Management Studio, men variablen holder virkelig hele kommandoen.)

Jeg ved heller ikke, hvordan dette egentlig forholder sig til, om du bruger en lagret procedure eller ej, eller hvorfor du forsøger at gøre det "uden at gå efter SP"... denne forespørgsel kan køres som en lagret procedure eller ikke, det hele afhænger af, hvor ofte du vil ringe til det, hvor proceduren bor osv.



  1. Laravel 4 Migrations kaster 1072 fejl

  2. Den rigtige måde at spejle en PHP/MySQL-opsætning på

  3. en bedre tilgang end at gemme mysql-adgangskode i almindelig tekst i konfigurationsfil?

  4. Planlæg SQL Job i et brugerkonfigureret tidsintervaller hver dag