Cette version comporte de nombreux changements attendus depuis longtemps, dont voici les principaux:
1. Fonctions statistiques (deviation standard, variance, etc),
2. Fonctions T-SQL appelable en ligne,
3. Trigger "instead of" applicable sur des vues,
4. Archive database (ouverture d'un dump en lecture directe, déjà dispo en 12.5.4).
Les exemple ci-dessous ont été "piqué" dans la doc ASE 15.0.2 (Nouvelle Fonctionalité) - je n'ai pas encore fait de tests exhaustifs de ces fonctions.
Les fonctions en T-SQL s'utilisent comme ceci:
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | create function BONUS(@salary int, @grade int, @dept_id int) returns int as begin declare @bonus int declare @cat int set @bonus = 0 select @cat = dept_cat from department where dept_id = @dept_id if (@cat < 10) begin set @bonus = @salary *15/100 end else begin set @bonus = @salary * 10/100 end return @bonus end |
que l'on peut appeler directement dans une requête:
Code : | Sélectionner tout |
1 2 3 4 | select emp_name, BONUS(salary, grade, dept_id) from emp_data where some_condition... |
ce qui n'était pas faisable avec une proc stockée.
Le trigger "instead of" permet de faire une exploitation plus poussé des vues, comme par exemple:
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | CREATE TABLE EmployeeWest ( empid int primary key, empname varchar(30), empdob datetime, region char(5) constraint region_chk check (region='West')) CREATE TABLE EmployeeEast ( empid int primary key, empname varchar(30), empdob datetime, region char(5) constraint region_chk check (region='East')) CREATE VIEW Employees as SELECT * FROM EmployeeEast UNION ALL SELECT * FROM EmployeeWest CREATE TRIGGER EmployeesInsertTrig on Employees INSTEAD OF INSERT AS BEGIN INSERT INTO EmployeeEast SELECT * FROM inserted where region = "East" INSERT INTO EmployeeWest SELECT * FROM inserted where region = "West" END -- Ceci va inserer les données dans EmployeeEast: INSERT INTO Employees values (10, 'Jane Doe', '11/11/1967', 'East') -- Et ceci dans EmployeeWest INSERT INTO Employees values (11, 'John Smith', '01/12/1977', 'West') |
Il y a évidemment aussi de nombreuses autres améliorations, en particulier au niveau de l'optimiseur.
En attendant la 15.1 qui elle aura la fonctionalité "shared disk cluster" (instances ASE multiples s'appuyants sur les mêmes disques physiques).
Michael