[aide svp] Create function => erreur de syntaxe.
Bonjour, j'essaye de creer la fonction suivant :
struc(@vchar1 varchar(10),@vchar2 varchar(10))
dans la fonction, on va rentrer par exemple :
struc(C,N)
et donc la fonction devra me creer une table de une colonne sous la forme :
caractere+numero
j'ai donc fait ce petit script et la syntaxe de ma creation de fonction n'est pas bonne et je n'arrive pas à trouver à quel endroit.
-----------------------------------------------------------------------
--
--
-- Script
--
--
-----------------------------------------------------------------------
create function struc
(@vchar1 varchar(10),@vchar2 varchar(10))
returns table as
begin
declare @char1 varchar(100);
declare @char2 varchar(100)
if @vchar1 = c
set @char1 = gendata.char
if @vchar1 = n
set @char1 = gendata.num
if @vchar2 = c
set @char2 = gendata.char
if @vchar2 = n
set @char2 = gendata.num
return (
select n1.col+n2.col from
(select top 2 col from @char1 order by newid()) n1,
(select top 2 col from @char2 order by newid()) n2
)
end
-----------------------------------------------------------------------
J'ai crée 2 tables qui font partis d'un schema dans ma base de donnée
-une table gendata.char qui a une colonne "col" avec des caracteres qui vont de a à z
-une table gendata.num qui a une colonne "col" avec des chiffres qui vont de 0 à 9
je sais pas si j'ai été très clair dans mon explication ... vous me direz :lol:
return (@aux1+@aux2) tout simplement
Je n'ai pas bien compris, mais je te propose ce code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
create function struc (@vchar1 varchar(10),@vchar2 varchar(10))
returns varchar(20)
AS
begin
declare @aux1 varchar(20);
declare @aux2 varchar(20);
if @vchar1 = c
select top 2 @aux1=col from gendata.char order by newid();
Else
select top 2 @aux1=col from gendata.num order by newid();
if @vchar2 = c
select top 2 @aux2=col from gendata.char order by newid();
Else
select top 2 @aux2=col from gendata.num order by newid();
return (@aux1+@aux2)
end |
:yaisse2: