如何屏蔽sqlServer触发器

[不指定 2007/09/01 15:50 | by ipaddr ]

---

--禁用单个触发器:
ALTER TABLE trig_example DISABLE TRIGGER trig1
GO
--恢复单个触发器:
ALTER TABLE trig_example ENABLE TRIGGER trig1
GO

---

--禁用某个表上的所有触发器
ALTER TABLE 你的表 DISABLE TRIGGER all

--启用某个表上的所有触发器
ALTER TABLE 你的表 enable TRIGGER all

--禁用所有表上的所有触发器
exec sp_msforeachtable 'ALTER TABLE ? DISABLE TRIGGER all'

--启用所有表上的所有触发器
exec sp_msforeachtable 'ALTER TABLE ? enable TRIGGER all'

使用同样的方式,可以禁用和恢复约束:
exec sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all'

exec sp_msforeachtable 'ALTER TABLE ? CHECK CONSTRAINT all'

在.Net1.1的时代,一般是使用OpenSMTP来发送邮件的,到了.Net 2.0,自带了SMTPClient类,一般用自带的SmtpClient来发送信件。

但.Net 2.0自带的SMTPClient有点问题,在SMTP登录时,将用户名直接跟在Auth Login后面(AUTH LOGIN USERNAME),有些SMTP服务器不支持这种认证,比如,21cn.com, tom.com的邮件服务器,使用.net 2.0自带的SMTPClient,即使用户名密码正确,也无法发送成功。

所以,某些情况下,还是需要使用OpenSMTP来发送邮件,OpenSMTP的不足是不支持SSL,所以给Gmail发信时,我一般采用SMTPClient,而给其它邮局发信时,我一般采用OpenSMTP

OpenSMTP的另外一个缺点就是,发送中文名的附件时,附名名乱码,出现这种情况的原因,是OpenSMTP未对附件的文件名进行合适的BASE64编码,以下是OpenSMTP的Attachment.cs里的ToMime函数的代码:

sb.Append("Content-Type: " + mimeType + ";\r\n");
sb.Append(" name=\"" + MailEncoder.ConvertToQP(name,null) + "\"\r\n");
sb.Append("Content-Transfer-Encoding: " + encoding + "\r\n");
sb.Append("Content-Disposition: attachment;\r\n");
sb.Append(" filename=\"" + MailEncoder.ConvertToQP(name,null) + "\"\r\n\r\n");

网上也有一些解决方法,不过大多是制标不制本,以下给出一种较合理的方案:

//Fixed by Admin.net(a)163.com
//Chinese Windows:Encoding.Default=GB2312

byte[] bFName = System.Text.Encoding.Default.GetBytes(name.ToCharArray());
string sFName = System.Convert.ToBase64String(bFName);
String fname = "=?" + System.Text.Encoding.Default.BodyName + "?B?" + sFName + "?=";


//Fixed by Admin.net(a)163.com
sb.Append("Content-Type: " + mimeType + ";\r\n");
sb.Append(" name=\"" + fname + "\"\r\n");
sb.Append("Content-Transfer-Encoding: " + encoding + "\r\n");
sb.Append("Content-Disposition: attachment;\r\n");
sb.Append(" filename=\"" + fname + "\"\r\n\r\n");


此方法适用于简体中文的Windows,也适用于其它所有的非英文Windows.

分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]