Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Solte todas as restrições em uma tabela


Bem, você sempre pode copiar a saída do painel inferior, colá-la no painel superior e pressionar F5. Ou você pode construir uma string para executar diretamente:
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 você estiver satisfeito com o PRINT output, comente e descomente o EXEC . Observe que a saída de impressão será truncada para 8K no Management Studio, mas a variável realmente contém todo o comando.)

Também não sei como isso realmente se relaciona se você está usando um procedimento armazenado ou não, ou por que está tentando fazê-lo "sem ir para SP" ... essa consulta pode ser executada como um procedimento armazenado ou não, tudo depende de quantas vezes você vai ligar, onde o procedimento fica, etc.