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

Rilascia tutti i vincoli in una tabella

Bene, puoi sempre copiare l'output dal riquadro inferiore, incollarlo nel riquadro superiore e premere F5. Oppure puoi creare una stringa da eseguire direttamente:

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;

(Quando sei soddisfatto di PRINT output, commentalo e decommenta il EXEC . Nota che l'output di stampa verrà troncato a 8K in Management Studio ma la variabile contiene davvero l'intero comando.)

Inoltre non so come questo sia realmente correlato al fatto che tu stia utilizzando una procedura memorizzata o meno, o perché stai provando a farlo "senza passare a SP" ... questa query può essere eseguita come una procedura memorizzata o no, tutto dipende da quanto spesso lo chiamerai, da dove vive la procedura, ecc.