Atualmente, estou procurando uma maneira de excluir várias colunas ao mesmo tempo de uma determinada tabela no servidor sql.
Uma maneira de fazer isso é usar a instrução ALTER conforme mostrado abaixo:
Alter Table [USER_DB].[dbo].my_Table
DROP COLUMN "ID",
"Name",
"Relationship" ;
Estou usando a instrução acima em algum procedimento armazenado para descartar as colunas e está funcionando bem. No entanto, isso cria um problema quando eu reexecuto essa instrução e as colunas já são descartadas.
Encontrei uma boa solução no SO que não falha mesmo quando as colunas são descartadas.
IF EXISTS(SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='my_Table'
and column_name= 'ID'
and Table_SChema='DBO')
BEGIN
ALTER TABLE my_Table
DROP COLUMN
ID
END
Eu tentei a instrução acima para descartar várias colunas ao mesmo tempo, mas não está funcionando.
Eu estava procurando algo assim.
IF EXISTS(SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='my_Table'
and column_name= 'ID'
and column_name= 'Name'
and column_name ='Relationship'
and Table_SChema='DBO')
BEGIN
ALTER TABLE my_Table
DROP COLUMN
ID
,Name
,Relationship
END
No momento, você está procurando por um nome_da_coluna que tenha valores diferentes, portanto, nunca passará no teste. Você tem que pesquisar em linhas diferentes para fazê-lo funcionar.