使用Case / If语句删除

时间:2017-09-14 20:19:10

标签: sql-server-2008

我有一张桌子

Table1
+-------+-----------+----------+
| EmpNo | FirstName | LastName |
+-------+-----------+----------+
|   123 | Bob       | Smith    |
|   456 | John      | Smith    |
|   789 | Bill      | Smith    |
+-------+-----------+----------+

我想创建一个存储过程来删除整个表,或者根据传入的参数从表中删除一个条目。

类似于

的东西
Delete from Table1
Case where @DeleteAll = 1
    Then where EmpNo is not null
Else where EmpNo = @employee

delete from Table1
If @DeleteAll = 1
    Then where EmpNo is not null
Else
    where EmpNo = @employee
select * from Table1

2 个答案:

答案 0 :(得分:3)

Delete from Table1
where @DeleteAll = 1
   or EmpNo = @employee

答案 1 :(得分:1)

试试这个:

IF @DeleteAll = 1
BEGIN
   DELETE 
   FROM TABLE1
   WHERE EmpNo IS NOT NULL
END
ELSE
   DELETE
   FROM TABLE1
   WHERE EmpNo = @employee
;
相关问题