2016-10-23 3 views
0

У меня есть таблица с поля customer_code и customer_Name. Я хотел запустить триггер для создания и обновления пользовательского кода при вводе имени клиента.Trigger для формирования кода клиента

CustomerCode должен быть первым, третьим и последним письмом клиента, и если несколько клиентов имеют одинаковое имя, то код должен быть добавлен с 1,2,3 .... и т. Д. (Например: RAHAN-RHN, RAHAN-RHN1, RHN2 ... и т. Д.).

Другое дело, если есть другое имя * (например: ROHAN-код должен быть RHN3) * Я застрял на этой части

Может кто-то пожалуйста, помогите мне, как скрипт триггера.

Благодаря

Это один я создал, но есть ошибка на второй попытки части, как я уже упоминал выше.

CREATE TRIGGER [dbo].[alphaNumericCustomerReference] 
ON [dbo].[CUSTOMER_MASTER] 
AFTER INSERT 

AS 
declare @NewCode nvarchar(50) 
declare @NewName nvarchar(50) 
declare @checkCode nvarchar(50) 
declare @ExtendedRefCode nvarchar(50) 
declare @id int,@msg varchar(200) 
declare @sameCustomerCount int 

select @id= CUST_ID from inserted i; 
select @NewCode= UPPER(SUBSTRING(CUST_NAME, 1, 1)+SUBSTRING(CUST_NAME, 3, 1)+RIGHT(CUST_NAME,1)) from inserted i; 
select @checkCode=CUST_CODE from dbo.CUSTOMER_MASTER where [email protected] 
select @NewName=CUST_NAME from inserted i; 
select @sameCustomerCount=count(CUST_NAME)-2 from dbo.CUSTOMER_MASTER where [email protected] 
BEGIN 
    SET NOCOUNT ON; 
if @checkCode is null 
    BEGIN TRY 
     UPDATE CUSTOMER_MASTER 
     SET CUST_CODE= @NewCode 
     where [email protected] 
     END TRY 
    BEGIN CATCH 
     PRINT 'Error occured that is' 
     set @msg=(SELECT ERROR_MESSAGE()) 
     print @msg; 
    END CATCH 
else 
    BEGIN TRY 
     select @[email protected]+1; 
     select @[email protected]+convert(nvarchar(255),@sameCustomerCount) 
     UPDATE CUSTOMER_MASTER 
     SET CUST_CODE= @ExtendedRefCode 
     where [email protected] 
    END TRY 
    BEGIN CATCH 
     PRINT 'Error occured that is' 
     set @msg=(SELECT ERROR_MESSAGE()) 
     print @msg; 
    END CATCH 
+0

Вы пытались написать триггер самостоятельно, прежде чем обращаться за помощью. – Jacobian

+0

Посмотрите эту тему. http://stackoverflow.com/questions/14252244/creating-a-trigger-generating-id-column-value-before-insert-when-new-tables-is-c – ogallagher

+0

Спасибо, я пытаюсь .. – Amjath

ответ

0

Я не знаю, но, возможно, это будет полезно для вас.

Смежные вопросы