这个是sqlserver的触发器CREATE TRIGGER InsertT_rule ON t_rule_ga
AFTER INSERT AS  DECLARE @Prefix CHAR(2)
  DECLARE @strMaxValue VARCHAR(10)
  DECLARE @intMaxValue INT
  DECLARE @ID VARCHAR(10)  SET @Prefix = 'GA'   --前缀
  SET @intMaxValue = (SELECT f_rule_num_con FROM t_config_ga WHERE f_num_con = 1)   --到配置表取当前应该插入的值
  SET @strMaxValue = CAST(@intMaxValue AS VARCHAR(8))
  
  SELECT @ID = 
  CASE LEN(@strMaxValue) 
    WHEN 1 THEN @Prefix + '0000000' + @strMaxValue --生成新ID
    WHEN 2 THEN @Prefix + '000000' + @strMaxValue
    WHEN 3 THEN @Prefix + '00000' + @strMaxValue
    WHEN 4 THEN @Prefix + '0000' + @strMaxValue
    WHEN 5 THEN @Prefix + '000' + @strMaxValue
    WHEN 6 THEN @Prefix + '00' + @strMaxValue
    WHEN 7 THEN @Prefix + '0' + @strMaxValue
    WHEN 8 THEN @Prefix + @strMaxValue
  END  UPDATE t_rule_ga SET f_num_rul = @ID WHERE f_num_rul = '0000000000'
  UPDATE t_config_ga SET f_rule_num_con = @intMaxValue + 1 WHERE f_num_con = 1
  go
非常感谢,百分送上~~~

解决方案 »

  1.   

    CREATE TRIGGER InsertT_rule ON t_rule_ga
    AFTER INSERT AS  Prefix CHAR(2);
      strMaxValue VARCHAR(10);
      intMaxValue INT;
      ID VARCHAR(10);
    bnegin  Prefix := 'GA'  ; --前缀
      SELECT f_rule_num_con into intMaxValue  FROM t_config_ga WHERE f_num_con = 1;
        
      ID :=lpad(strMaxValue,8,'0');
        UPDATE t_rule_ga SET f_num_rul = ID WHERE f_num_rul = '0000000000';
      UPDATE t_config_ga SET f_rule_num_con = intMaxValue + 1 WHERE f_num_con = 1;
    END;