Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion Groups
DB Engine
SQL ServerMSDESQL Server CE
Services
Analysis (Data Mining)Analysis (OLAP)DTSIntegration ServicesNotification ServicesReporting Services
Programming
CLRConnectivitySQLXML
Other Technologies
ClusteringEnglish QueryFull-Text SearchReplicationService Broker
General
Data WarehousingPerformanceSecuritySetupSQL Server ToolsOther SQL Server Topics
DirectoryUser Groups
Related Topics
MS AccessOther DB ProductsMS Server Products.NET DevelopmentVB DevelopmentJava DevelopmentMore Topics ...

SQL Server Forum / General / Other SQL Server Topics / April 2008

Tip: Looking for answers? Try searching our database.

table trigger just hangs

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
rcamarda - 16 Apr 2008 20:32 GMT
I have a UDF that cleans a field of control characters and I use it
like this
select
 dbo.udf_CleanAlphaNum(Address1) as Address1
from  Leads

It works great. I use it to clean several fields from a vendors SQL
server. The downside is I have to first load the data into my database
so I can use my function to clean the data THEN proceed to load it
into the destination table. I thought I could create a trigger on the
final table that calls this function via a trigger.

This is my test CREATE TRIGGER

USE [Strayer_Staging]
GO
/****** Object:  Trigger [dbo].[Clean_Q_Lead_Demographics]    Script
Date: 04/16/2008 15:32:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE TRIGGER [dbo].[Clean_Q_Lead_Demographics]
  ON  [Strayer_Staging].[dbo].[Q_Lead_Demographics]
 for update, insert
AS
 update Strayer_Staging.dbo.Q_Lead_Demographics
 set address1 = dbo.udf_CleanAlphaNum(inserted.Address1)
from INSERTED   ;

when I try to update a record with

update q_lead_demographics
set address1 = '2 chestnut street'
where leadid = 1075789

it looks like it updates all records becuase it take 4 minutes and I
get this message:
(1055538 row(s) affected)

(1 row(s) affected)

it works, but on all rows, not just the updated row.

Is there a @@ variable that is the primary key so I should use  a
WHERE, or am going about this all wrong?
TIA
rcamarda - 16 Apr 2008 21:55 GMT
> I have a UDF that cleans a field of control characters and I use it
> like this
[quoted text clipped - 44 lines]
> WHERE, or am going about this all wrong?
> TIA

This seems to work better the result shows I updated 2 records. Is it
becuase an update is really a delete and an update?

ALTER TRIGGER [dbo].[Clean_Q_Lead_Demographics]
  ON  [Strayer_Staging].[dbo].[Q_Lead_Demographics]
 for update, insert
AS
 update Strayer_Staging.dbo.Q_Lead_Demographics
 set
    address1 = dbo.udf_CleanAlphaNum(inserted.Address1),
    address2 = dbo.udf_CleanAlphaNum(inserted.Address2),
    address3 = dbo.udf_CleanAlphaNum(inserted.Address3),
    bad_email = dbo.ValidateEmailAddress(lower(replace(inserted.email,'
',''))),
    City = dbo.udf_CleanAlphaNum(inserted.City)
from inserted
where q_lead_demographics.leadid = inserted.leadid
rcamarda - 17 Apr 2008 04:48 GMT
I got the trigger to work, but what added to my confusion was the bulk
load.
I was using the API method of bulk loading as provided in Cognos' Data
Manager ETL tool. I discovered that the trigger would work when I used
a normal relational delivery, but not the API bulk load.
Ed Murphy - 17 Apr 2008 06:23 GMT
> I got the trigger to work, but what added to my confusion was the bulk
> load.
> I was using the API method of bulk loading as provided in Cognos' Data
> Manager ETL tool. I discovered that the trigger would work when I used
> a normal relational delivery, but not the API bulk load.

http://msdn2.microsoft.com/en-us/library/ms171769.aspx indicates that
bulk loads ignore triggers unless called with FireTriggers = TRUE.  Does
Data Manager have an option to activate that flag?
rcamarda - 26 Apr 2008 04:04 GMT
Turns out it doesnt.
I've submitted an enhancement request to Cognos about that aspect of
API loads and triggers.
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.