Comment avoir un SQL statment simple dans un store procedure
fben20
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
Skratus Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
Skratus Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
Bonjour a tous,
je suis entrain d'automatiser une tache pour le travail ,j'ai cree un store procedure ,
le but est d'obetenir des donnees precises pour cela je dois inserer des donnees a partir de plusieurs tables dans un table temporaire a laide dun parametre le numero d'association qui va attrape le nom de la table source a chaque fois :
donc la variable de la table srouce est @export_table
et celle de l'asociaion est @assoc .
ma question est y a t'il un autre moyen de le faire autrement sans passer par le statement @sql_stmt ci-dessous dans mon exemple :
merci d'avance pour votre aide
declare @export_table varchar(50)
select @export_table = exp_table_name
from tbl_inst_lookup
where inst_no = @inst
and assoc_no = @assoc
CREATE TABLE #tmpexp (
[studentID] [char ] (16) COLLATE Latin1_General_CI_AS NULL ,
[lastname] [varchar] (40) COLLATE Latin1_General_CI_AS NULL ,
[firstname] [varchar] (40) COLLATE Latin1_General_CI_AS NULL ,
[cov_code] [char ] (3) COLLATE Latin1_General_CI_AS NULL,
[real_cov_code] [char ] (3) COLLATE Latin1_General_CI_AS NULL
)
declare @sql_stmt nvarchar(2000)
set @sql_stmt = 'insert into #tmpexp (StudentID , lastname, firstname , cov_code, real_cov_code ) select StudentID , lastname, firstname , cov_code, real_cov_code
from '+@export_table+' where exportid = ' + cast (@exp as varchar)+ ''
EXEC sp_executesql @sql_stmt
select @sql_stmt
je suis entrain d'automatiser une tache pour le travail ,j'ai cree un store procedure ,
le but est d'obetenir des donnees precises pour cela je dois inserer des donnees a partir de plusieurs tables dans un table temporaire a laide dun parametre le numero d'association qui va attrape le nom de la table source a chaque fois :
donc la variable de la table srouce est @export_table
et celle de l'asociaion est @assoc .
ma question est y a t'il un autre moyen de le faire autrement sans passer par le statement @sql_stmt ci-dessous dans mon exemple :
merci d'avance pour votre aide
declare @export_table varchar(50)
select @export_table = exp_table_name
from tbl_inst_lookup
where inst_no = @inst
and assoc_no = @assoc
CREATE TABLE #tmpexp (
[studentID] [char ] (16) COLLATE Latin1_General_CI_AS NULL ,
[lastname] [varchar] (40) COLLATE Latin1_General_CI_AS NULL ,
[firstname] [varchar] (40) COLLATE Latin1_General_CI_AS NULL ,
[cov_code] [char ] (3) COLLATE Latin1_General_CI_AS NULL,
[real_cov_code] [char ] (3) COLLATE Latin1_General_CI_AS NULL
)
declare @sql_stmt nvarchar(2000)
set @sql_stmt = 'insert into #tmpexp (StudentID , lastname, firstname , cov_code, real_cov_code ) select StudentID , lastname, firstname , cov_code, real_cov_code
from '+@export_table+' where exportid = ' + cast (@exp as varchar)+ ''
EXEC sp_executesql @sql_stmt
select @sql_stmt
A voir également:
- Comment avoir un SQL statment simple dans un store procedure
- Microsoft store download - Guide
- 14 simple - Guide
- Télécharger sans app store gratuit - Guide
- Simple pdf - Télécharger - PDF
- Télécharger play store - Télécharger - Téléchargement & Transfert
1 réponse
Bonjour,
j'ai pas compris l'explication du début, mais si vous voulez automatiser un peu plus, jeter un oeil sur les Triggers (https://docs.microsoft.com/fr-fr/sql/t-sql/statements/create-trigger-transact-sql?view=sql-server-ver15)
Le principe est de faire executer une ou plusieurs instruction SQL en fonction de si on ajoute/modifie ou supprime des données dans une table.
Par exemple, dès que quelqu'un ajoute des données dans la table A, vous y récupérez directement le numéro de l'association et vous faite l'insert dans la foulée sur la table temporaire, ou directement sur la vraie table...
J'espère que cela vous aidera un peu
j'ai pas compris l'explication du début, mais si vous voulez automatiser un peu plus, jeter un oeil sur les Triggers (https://docs.microsoft.com/fr-fr/sql/t-sql/statements/create-trigger-transact-sql?view=sql-server-ver15)
Le principe est de faire executer une ou plusieurs instruction SQL en fonction de si on ajoute/modifie ou supprime des données dans une table.
Par exemple, dès que quelqu'un ajoute des données dans la table A, vous y récupérez directement le numéro de l'association et vous faite l'insert dans la foulée sur la table temporaire, ou directement sur la vraie table...
J'espère que cela vous aidera un peu