0
我正在同步两个单独的数据库应用程序。数据库是链接的服务器。一个是CRM,一个是ERP。当用户在CRM的quates表状态列中输入三个代码字符串中的一个时,需要在三个文本字符串之一时更新ERP的项目表状态。当输入特定值时触发更新链接服务器表
CN=Converted
WO=Working
PN=Pending
CRM行情表
CompanyID QuoteID Status
用户输入(3 1的代码)
CN
WO
PN
ERP项目表
CompanyID ProjectID Status
状态更新为(3 1的串)
Converted
Working
Pending
看起来这会是这样的
UPDATE ERP.dbo.Projects
SET ERP.dbo.Projects.Status = 'Converted'
FROM Inserted.CRM.Projects
WHERE Inserted.CRM.Projects Status = 'CN'
INNER JOIN ERP.dbo.Project.ProjectID = CRM.dbo.Quotes.QuoteID
UPDATE ERP.dbo.Projects
SET ERP.dbo.Projects.Status = 'Working'
FROM Inserted.CRM.Projects
WHERE Inserted.CRM.Projects Status = 'WO'
INNER JOIN ERP.dbo.Project.ProjectID = CRM.dbo.Quotes.QuoteID
UPDATE ERP.dbo.Projects
SET ERP.dbo.Projects.Status = 'Pending'
FROM Inserted.CRM.Projects
WHERE Inserted.CRM.Projects Status = PN
INNER JOIN ERP.dbo.Project.ProjectID = CRM.dbo.Quotes.QuoteID
难道是最好用的情况下,或者如果语句或使用3个独立的触发器,每个代码?
数据库:SQL Server 2008 R2的
绝对不要使用3个单独的触发器。这将是完全疯狂的。我会使用case表达式而不是3个独立的更新语句来创建一个更新语句。绝对不是IF声明,在这方面根本没有意义。 –