tblParentSqL Сделки - запрос возврат оленьей кожи значение, как и ожидалось
pid(int) name deleted(bit)
1 abc 0
2 def 0
tblChild
cid(int) name pid(ForeignKey)
1 aaa 1
2 bbb 1
Когда запись из tblParent
находится в процессе удаления, необходимо проверить наличие дочерних записей. Если да, откат & return 0. Если нет, то обновить удаленный столбец до «1» и вернуть 1. В принципе, делать мягкое удаление
SP работает нормально. Все, что мне нужно, это знать статус 0 или 1 на основании действия, которое имело место. Как это должно быть сделано. Я бы назвал эту процедуру хранилища от C#, linq к объектам, чтобы получить статус. что-то вроде:
public int somefuntion() //returning a string is also fine..
{
return MYDB.SoftDelete(parameters.....);
}
EDIT:
ALTER PROCEDURE SoftDelete
(
@TableName nvarchar(50), @ColName nvarchar(50),
@Id nvarchar(50)
)
AS
BEGIN
DECLARE @qry nvarchar(500)
SELECT @qry = 'begin transaction
delete '[email protected]+' where '[email protected]+'='[email protected]+'
if(@@Error <> 0)
Begin
--select 0
End
else
Begin
rollback transaction
update '[email protected]+' set deleted = 1 where '[email protected]+' = '[email protected]+'
--select = 1
end'
EXECUTE sp_executesql @qry
END
является @status часть вызывающего кода или части исполняемого динамического sql? Вы используете его в обоих направлениях, он не может работать так – Sklivvz
Его просто переменная для хранения 1 или 0, так что я могу использовать ее позже в C# – Ruby
см. мой второй ответ . – Jade