2015-06-22 2 views
0

Я начинаю с SQL, и мне трудно избавиться от повторного кода. У меня есть условие «AccountId = 20», которое я дважды использую в SQL-запросе. SQL выглядит примерно так:SQL повторяющееся состояние в двух таблицах

DELETE FROM Table_A WHERE FunctionId IN (Select FunctionId FROM Table_B WHERE AccountId=20); 
DELETE FROM Table_B WHERE AccountId=20; 

При изменении условия я должен изменить обе строки в коде.

Я хочу очистить повторяющийся код. Я пытался что-то вроде:

DECLARE @condition datatypeForConditions = AccountId=20; 
DELETE FROM Table_A WHERE FunctionId IN (Select FunctionId FROM Table_B WHERE @condition); 
DELETE FROM Table_B WHERE @condition; 

SQL, кажется, не имеют тип данных для условий, поэтому я не могу объявить эту переменную. Могу ли я установить переменную для условия? Как я могу избежать необходимости менять состояние в двух местах?

ответ

0

вы можете достичь его, как это

DECLARE @AccountId int; 
@AccountID=20; 
DELETE FROM Table_A WHERE FunctionId IN (Select FunctionId FROM Table_B WHERE [email protected]); 
DELETE FROM Table_B WHERE [email protected]; 
Смежные вопросы