Oggi mi è capitato di dover generare un po' di codice per assegnare a delle custom entity i valori di default presenti all'interno della definizione delle colonne di un database SQL.
[code language='SQL']
DECLARE @entityname varchar(50)
DECLARE @tablename varchar(50)
DECLARE @columnfilter varchar(50)
SET @entityname = 'myobjectname'
SET @tablename = 'mytable'
SET @columnfilter = ''
Select @entityname + '.' + sys.columns.name + ' = ' +
REPLACE(
REPLACE(
REPLACE(sys.default_constraints.definition,'(','')
,')','')
,'''','"')
+ ';'
FROM sys.columns
JOIN sys.tables ON
sys.columns.object_id = sys.tables.object_id
JOIN sys.default_constraints ON
sys.columns.default_object_id = sys.default_constraints.object_id
WHERE sys.tables.name = @tablename
AND sys.columns.name Like(@columnfilter + '%')
[/code]
Ecco la query che ho utilizzato per generare il codice C# direttamente da SQL Server