Saturday, 20 April 2019

Set default value for all columns with specific name within a database SQL Server


ALTER PROCEDURE [dbo].[SP_DefaultValueAllCol]
AS
BEGIN
DECLARE @sql NVARCHAR(MAX) = N'';

SELECT @sql += N'ALTER TABLE ' + t + N' DROP CONSTRAINT ' + c + N';
  ALTER TABLE ' + t + N' ADD CONSTRAINT ' + c + N' DEFAULT (5) FOR [insertOnUTC];'
FROM
(
     SELECT QUOTENAME(s.name) + '.' +   
     QUOTENAME(t.name) AS t,
     QUOTENAME(d.name) AS c
          FROM sys.tables AS t
          INNER JOIN sys.schemas AS s
          ON t.[schema_id] = s.[schema_id]
          INNER JOIN sys.columns AS c
          ON t.[object_id] = c.[object_id]
          INNER JOIN sys.default_constraints AS d
          ON d.parent_object_id = t.[object_id]
          AND d.parent_column_id = c.column_id
WHERE c.name = N'COLUMNNAME'
) AS x;

PRINT @sql;
END

No comments:

Post a Comment