sql >> Base de Datos >  >> RDS >> Sqlserver

Soltar todas las restricciones en una tabla

Bueno, siempre puede copiar la salida del panel inferior, pegarla en el panel superior y presionar F5. O puede construir una cadena para ejecutarla directamente:

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;

(Cuando esté satisfecho con PRINT salida, coméntelo y descomente el EXEC . Tenga en cuenta que la salida de impresión se truncará a 8K en Management Studio, pero la variable realmente contiene el comando completo).

Además, no sé cómo se relaciona esto realmente con si está utilizando un procedimiento almacenado o no, o por qué está tratando de hacerlo "sin ir a SP"... esta consulta se puede ejecutar como un procedimiento almacenado o no, todo depende de la frecuencia con la que lo vayas a llamar, donde vive el procedimiento, etc.