Home > Back-end >  How can I remove tool generated columns named createdby updatedat etc
How can I remove tool generated columns named createdby updatedat etc

Time:12-02

I used a Redgate tool to synchronize data from a SQL Server database, and in the process, the tool created four new columns in each table with names like createdby, updatedby, etc.

Now that the data is in sync, I don't want these columns anymore.

Is there a simple way, maybe a script, to remove these columns?

CodePudding user response:

You can drop the columns by running the following statement

ALTER TABLE table_name
DROP COLUMN column_name;

https://www.sqlservertutorial.net/sql-server-basics/sql-server-alter-table-drop-column/

EDIT: As Dale suggested, the intention might be to have a way to drop these columns en masse, so here's an update:

I tend to generate the code that does not have to be fully automated, but needs to be relatively easy to update. If I had dozens or hundreds of tables with extra columns that I want to remove, I would write a query similar to the one below, then copy the results from the lower pane in SSMS and execute the resulting script.

select 'alter table '   quotename(table_schema)   '.'   quotename(table_name)   ' drop column '   quotename(column_name) 
from information_schema.columns
where 1=1
and column_name in ('createdby', 'updatedby')

CodePudding user response:

Here is an alternative solution, not as good as @dalek

Suck the schema into Visual Studio using a new db project and tool-schema-compare. Then do replace all using the regex below, replace with nothing.

This removes the unwanted column

\[CreatedAt\][^\,.] \,

this removes all the dangling commas at the end of a table column create that preceded the unwanted columns

\,([\s\r][\s] ) \)
  • Related