您可以使用sys.column
和sys.tables
和execute
批量寫入動態查詢。 您可以使用實體框架調用Stored Procedure
來實現此功能。
刑事訴訟法
Create Procedure UpdateDelete @date Date = '01/01/2014'
AS
Begin
Declare @DelQuery Nvarchar(Max),@updatequery Nvarchar(Max),
select @DelQuery = Stuff((
select ' Delete from ' + t.name + ' where DelDate = ''' + Convert (varchar,@date,110) + ''';' from sys.columns C JOIN sys.tables t on c.object_id = t.object_id
where C.name = 'DelDate' for XMl Path('')),1,1,'')
select @DelQuery
Exec sp_executeSQL @DelQuery
select @updatequery = Stuff((
select ' UPDATE ' + t.name + ' SET DelChilds = 1 ;' from sys.columns C JOIN sys.tables t on c.object_id = t.object_id
where C.name = 'DelChilds' for XMl Path('')),1,1,'')
--select @updatequery
Exec sp_executeSQL @updatequery
END
對於DelDate
select 'DELETE FROM ' + t.name + ' WHERE DelDate = ''01/01/2014'' ' + Char(13) + 'GO ' from sys.columns C JOIN sys.tables t on c.object_id = t.object_id
where C.name = 'DelDate'
對於Delchilds
select 'UPDATE ' + t.name + ' SET DelChilds = 1 ' + Char(13) + 'GO ' from sys.columns C JOIN sys.tables t on c.object_id = t.object_id
where C.name = 'DelChilds'
如何將這些可通過實體框架來執行,爲什麼你必須使用「從刪除... 「Delchilds,因爲這個領域應該更新。 – alex
如果你喜歡這種方式(EF旁路),你可以通過Context.Database.Connection來執行它。如果您使用SQL Server,請在yyyymmdd中指定日期,否則您的程序只能在美國:) – bubi
只有一些表具有「DelDate」字段,並且只有一些表具有「DelChilds」字段。這些查詢是否適用於這種情況?以及如何使用實體框架來運行這個? – alex