Another post for me that is simple and hopefully serves as an example for people trying to get blogging as #SQLNewBloggers.
This is a quick one. As I experimented with Dynamic Data Masking for the Stairway to Dynamic Data Masking, and writing my Using SQL Compare with Dynamic Data Masking, I needed to remove masking from a column. I didn’t want to rebuild tables, and hoped there was an easy way to ALTER a column.
There is.
Here’s my table. I added masking to this table, but this is the scripted DDL.
CREATE TABLE [dbo].[OrderHeader]( [OrderID] [INT] IDENTITY(1,1) NOT NULL, [Orderdate] [DATETIME2](3) NULL, [CustomerID] [INT] NULL, [OrderTotal] [NUMERIC](12, 4) MASKED WITH (FUNCTION = 'default()') NULL, [OrderComplete] [TINYINT] NULL, [SalesPersonID] [INT] NULL, PRIMARY KEY CLUSTERED ( [OrderID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO
Note, I have masking enabled on the OrderTotal column. If I want to turn this off, I merely run this:
ALTER TABLE dbo.OrderHeader ALTER COLUMN OrderTotal ADD MASKED WITH (FUNCTION='default()');
This removes masking, and if I script the table again, I get this:
CREATE TABLE [dbo].[OrderHeader]( [OrderID] [INT] IDENTITY(1,1) NOT NULL, [Orderdate] [DATETIME2](3) NULL, [CustomerID] [INT] NULL, [OrderTotal] [NUMERIC](12, 4) MASKED WITH (FUNCTION = 'default()') NULL, [OrderComplete] [TINYINT] NULL, [SalesPersonID] [INT] NULL, PRIMARY KEY CLUSTERED ( [OrderID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO
Easy to turn off if you need to. No application changes, and no security changes.
SQLNewBlogger
A quick, handy piece. Give a why you need this, and show how to do it. Any of you could write this in 5 minutes.

