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
Vous avez lu gratuitement 6 560 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.