Drop primary key using script in SQL Server database [duplicate]

preciso de largar a chave primária de uma tabela Student numa base de dados do servidor SQL.

eu editei na tabela e o guião que recebi é

ALTER TABLE dbo.Student
    DROP CONSTRAINT PK__Student__9CC368536561EF8B

mas quando executar este programa na pesquisa do servidor SQL navegador para largar a chave primária

mostra a mensagem

Msg 3728, Nível 16, Estado 1, Linha 1
'PK__Student_ _ _ 9CC368536561EF8B' is not a constraint.
Msg 3727, Nível 16, Estado 0, Linha 1

Para minha preocupação, acho que isto será gerado aleatoriamente. por favor, ajude-me a largar a restrição de chave primária usando script.

obrigado antecipadamente

Author: marc_s, 2012-12-19

3 answers

Pode procurar o nome da restrição no sistema.tabela key_constraints:

SELECT name
FROM   sys.key_constraints
WHERE  [type] = 'PK'
       AND [parent_object_id] = Object_id('dbo.Student');

Se você não se importa com o nome, mas simplesmente quer deixá-lo cair, você pode usar uma combinação deste e dinâmico sql:

DECLARE @table NVARCHAR(512), @sql NVARCHAR(MAX);

SELECT @table = N'dbo.Student';

SELECT @sql = 'ALTER TABLE ' + @table 
    + ' DROP CONSTRAINT ' + name + ';'
    FROM sys.key_constraints
    WHERE [type] = 'PK'
    AND [parent_object_id] = OBJECT_ID(@table);

EXEC sp_executeSQL @sql;

Este código é de Aaron Bertrand (Fonte ).

 68
Author: Bridge, 2017-05-23 12:03:02

Basta clicar em

'Database' >tables>your table name>keys>copy the constraints like 'PK_ _ _ TableName_ _ 30242045'

E executar a pesquisa abaixo é:

Query:alter Table 'TableName' drop constraint PK__TableName__30242045
 13
Author: Harsh Bajaj, 2015-06-04 10:16:51
A resposta que tenho é que variáveis e sub-séries não vai funcionar e temos que usar script SQL dinâmico. Os seguintes trabalhos:
DECLARE @SQL VARCHAR(4000)
SET @SQL = 'ALTER TABLE dbo.Student DROP CONSTRAINT |ConstraintName| '

SET @SQL = REPLACE(@SQL, '|ConstraintName|', ( SELECT   name
                                               FROM     sysobjects
                                               WHERE    xtype = 'PK'
                                                        AND parent_obj =        OBJECT_ID('Student')))

EXEC (@SQL)
 4
Author: muthukumar, 2017-04-06 16:07:47