Sql 在VisualStudio2010上创建更新触发器

Sql 在VisualStudio2010上创建更新触发器,sql,visual-studio-2010,Sql,Visual Studio 2010,我正在寻求有关在VisualStudio2010上编写AQL触发器的帮助。我在搜索中找到了许多触发器,但我能设法使其工作。也许你们中有一位在这件事上更有经验的人能给我一些帮助 以下是场景: 我有一个名为“testDB”的数据库。该数据库有4个表,主表称为Product,由4列组成(productId、qualityControl-1-required、qualityControl-2-required、readyToProcess) 如果qualityControl-#-required为是,则

我正在寻求有关在VisualStudio2010上编写AQL触发器的帮助。我在搜索中找到了许多触发器,但我能设法使其工作。也许你们中有一位在这件事上更有经验的人能给我一些帮助

以下是场景: 我有一个名为“testDB”的数据库。该数据库有4个表,主表称为Product,由4列组成(productId、qualityControl-1-required、qualityControl-2-required、readyToProcess)

如果qualityControl-#-required为是,则productId将插入相应的Qcontrol表中。 表QControl1和QControl2包含4个字段(id(pK)、productId(Fk)、qControlFinished和notes)

第四个表QControlReady还包含4个字段(id(pK)、productId(Fk)、qControl1Done、qControl2Done)

我想要完成的是一旦完成QControl1和QControl2,QControlReady上的值就会反映出来,所以我想将列readyToProcess中的Product表更新为“yes”


我认为触发器声明中不存在的关键字
。dbo.QControlReady上更新
之前的关键字必须在前面或后面

尝试以下方法之一(选择之前或之后):


在开始之前,您没有指定您在哪个表上工作。

什么不起作用?当您在sql环境中运行触发器时,触发器会起作用?我在关键字“UPDATE”附近得到了错误的语法,它不适用于,但在
之前、之后得到了
。我得到了两个语法错误:(1)在上的键附近得到了错误的语法。(2) “=”附近的语法不正确。请尝试:=而不是==。组,开始时忘记删除dbo.Product上的
。不需要指定,因为您说过在开始后更新表。我更新了我的答案,试着这样做。感谢Zaphod按照你的例子所做的反应,并整合了我发现的其他例子,我让它工作了。。。感谢

ALTER TRIGGER dbo.QControlReady_在dbo.QControlReady上更新为开始更新产品集product.readyToProcess='Y',来自dbo。在product.productId=inserted.productId上插入产品联接,其中(inserted.qControl1Done='Y')和(inserted.qControl2Done='Y');结束哦,==是用于等于条件的。我认为这是为了设定价值观。编写create或repalce触发器也比编写alter要好。别忘了接受asnwer。
CREATE TRIGGER dbo.Product_Updated 

ON dbo.Product

FOR  UPDATE ON dbo.QControlReady

AS BEGIN

  UPDATE dbo.Product SET dbo.Product.readyToProcess = "Y"

  FROM UPDATED

  WHERE updated.id = dbo.Product.productId 

  AND dbo.QControlReady.qControl1Done == "Yes" 

  AND dbo.QControlReady.qControl2Done == "Yes"

END 
CREATE TRIGGER dbo.Product_Updated 


BEFORE/AFTER UPDATE ON dbo.QControlReady

AS BEGIN

  UPDATE dbo.Product SET dbo.Product.readyToProcess = "Y"

  FROM UPDATED

  WHERE updated.id = dbo.Product.productId 

  AND dbo.QControlReady.qControl1Done = "Yes" 

  AND dbo.QControlReady.qControl2Done = "Yes"

END