sql server - A short way to make Updates/Deletions to several database's tables -
i have application on vb.net use sql server database.
i'm using entity framework 6.1
the database has lot's of tables (100+)
-on tables there's field "deldate" (date)
-on tables there's field "delchilds" (bit)
is there short way these operations :
1) delete records tables have deldate= "01/01/2014"
2) update "delchilds" field on records ( example set true )
thank !
you can write dynamic query using sys.column , sys.tables , execute them in batch . can call stored procedure achieve functionality using entity framework .
procedure code
create procedure updatedelete @date date = '01/01/2014' begin declare @delquery nvarchar(max),@updatequery nvarchar(max), select @delquery = stuff( ( select ' delete ' + t.name + ' deldate = ''' + convert ( varchar,@date,110) + ''';' sys.columns c join sys.tables t on c.object_id = t.object_id c.name = 'deldate' xml path('')),1,1,'') select @delquery exec sp_executesql @delquery select @updatequery = stuff( ( select ' update ' + t.name + ' set delchilds = 1 ;' sys.columns c join sys.tables t on c.object_id = t.object_id c.name = 'delchilds' xml path('')),1,1,'') --select @updatequery exec sp_executesql @updatequery end for deldate
select 'delete ' + t.name + ' deldate = ''01/01/2014'' ' + char(13) + 'go ' sys.columns c join sys.tables t on c.object_id = t.object_id c.name = 'deldate' for delchilds
select 'update ' + t.name + ' set delchilds = 1 ' + char(13) + 'go ' sys.columns c join sys.tables t on c.object_id = t.object_id c.name = 'delchilds'
Comments
Post a Comment