sql怎么动态表示删除语句where之后的条件

想创建一个触发器,当表内没有该数据的时候提醒你,所以怎样动态表示删除操作where之后的条件语句... 想创建一个触发器,当表内没有该数据的时候提醒你,所以怎样动态表示删除操作where之后的条件语句 展开
 我来答
匿名用户
2015-10-30
展开全部
如:
declare @sql nvarchar(500),@where nvarchar(200)
--@where根据条件设置此参数的值
if len(@where)>0
begin
set @sql='delete from mytable where '+@where
end
else
begin
set @sql=''
end
exec(@sql)
追问
这是一个学生表,要删除学生表内的一些数据而且这个删除语句的where可以是动态
create trigger delete_stu
on student for delete
as if(exists (select* from Student where sno='202215216')) print('你删除了一条数据!')
else print('抱歉!删除不成功,表内没有该数据')
追答
lz的目的是想在删除操作后,不管成功与否均返回相应的消息?这个没有必要在触发器里面操作,完全可以在执行删除的按钮功能里面做。(另外,当不存在该行数据时,点击删除是不会调用到触发器的,你可以测试一下看看 )  。如下代码供参考:
private String Delete(String sNo)
{
String sql="delete from Student where sno=@sno";
String sConnectionString="";//连接串内容自定义
SqlConnection cn=new SqlConnection(sConnectionString);
SqlCommand cmd=new SqlCommand(sql,cn);
cmd.Parameters.AddValues("@sno",sNo);
if (cn.State != ConnectionState.Open)
cn.Open();
try{
int i=cmd.ExecuteNonQuery();
if(i>0)
{
return "你删除了一条数据!";
}
else
{
return "抱歉!删除不成功,表内没有该数据";

}
}
catch{}
finally
{
if (cn.State != ConnectionState.Closed)
cn.Close();
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式