J'ai un pb pourquoi je suis obligé de rentrer tous les paramètres de ma fonction?Lorsque je demande
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
35
36
37
38
39
40
41
42
43 IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.DWH_GET_MAXDATE') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION dbo.DWH_GET_MAXDATE GO CREATE FUNCTION DWH_GET_MAXDATE( @d1 DATETIME = null, @d2 DATETIME = null, @d3 DATETIME = null, @d4 DATETIME = null, @d5 DATETIME = null, @d6 DATETIME = null, @d7 DATETIME = null, @d8 DATETIME = null, @d9 DATETIME = null, @d10 DATETIME = null ) RETURNS DATETIME AS -- Fonction qui retourne la date maximale parmi les 10 passées en paramètre BEGIN DECLARE @max DATETIME; WITH TabDates (dates) AS ( SELECT @d1 UNION ALL SELECT @d2 UNION ALL SELECT @d3 UNION ALL SELECT @d4 UNION ALL SELECT @d5 UNION ALL SELECT @d6 UNION ALL SELECT @d7 UNION ALL SELECT @d8 UNION ALL SELECT @d9 UNION ALL SELECT @d10 UNION ALL SELECT '19500101' ) SELECT @max = MAX(dates) FROM TabDates; RETURN @max; END GOj'ai un message :
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT [dbo].[DWH_GET_MAXDATE] ('20011231', '20000101' )Comment ça se fait? Pourquoi suis-je obligé de donner les 10 paramètres? A quoi servent les valeurs par défaut? Je rappelle juste la définition:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Msg 313, Level 16, State 2, Line 1 An insufficient number of arguments were supplied for the procedure or function dbo.DWH_GET_MAXDATE.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Scalar Functions CREATE FUNCTION [ schema_name. ] function_name ( [ { @parameter_name [ AS ][ type_schema_name. ] parameter_data_type [ = default ] } [ ,...n ] ] ) RETURNS return_data_type [ WITH <function_option> [ ,...n ] ] [ AS ] BEGIN function_body RETURN scalar_expression END [ ; ]
Partager