Après exécution d'une procédure, côté client j'ai les métadonnées sur les
colonnes (type, taille etc...).
Je voudrais faire la même chose mais sur le serveur.
Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que je
connaisse la structure...
SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
Est-ce possible ? (me reste toujours la possibilité de faire un outil
client
plutôt qu'un script SQL).
Merci d'avance.
Patrice
--
Après exécution d'une procédure, côté client j'ai les métadonnées sur les
colonnes (type, taille etc...).
Je voudrais faire la même chose mais sur le serveur.
Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que je
connaisse la structure...
SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
Est-ce possible ? (me reste toujours la possibilité de faire un outil
client
plutôt qu'un script SQL).
Merci d'avance.
Patrice
--
Après exécution d'une procédure, côté client j'ai les métadonnées sur les
colonnes (type, taille etc...).
Je voudrais faire la même chose mais sur le serveur.
Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que je
connaisse la structure...
SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
Est-ce possible ? (me reste toujours la possibilité de faire un outil
client
plutôt qu'un script SQL).
Merci d'avance.
Patrice
--
select * into #tmp from openQuery(localhost,'EXECUTE
BaseDeDonnée.dbo.Procédure')
Il faut d'abord déclarer ton serveur en serveur distant (mais lui même en
fait !).
sp_addserver 'localhost'
GO
sp_serveroption 'localhost', 'data access', true
GO
--
Thierry
"Patrice" a écrit dans le message de news:
> Après exécution d'une procédure, côté client j'ai les métadonnées sur
> colonnes (type, taille etc...).
> Je voudrais faire la même chose mais sur le serveur.
>
> Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
>
> INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que je
> connaisse la structure...
> SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
>
> Est-ce possible ? (me reste toujours la possibilité de faire un outil
> client
> plutôt qu'un script SQL).
>
> Merci d'avance.
>
> Patrice
> --
>
>
>
select * into #tmp from openQuery(localhost,'EXECUTE
BaseDeDonnée.dbo.Procédure')
Il faut d'abord déclarer ton serveur en serveur distant (mais lui même en
fait !).
sp_addserver 'localhost'
GO
sp_serveroption 'localhost', 'data access', true
GO
--
Thierry
"Patrice" <nobody@nowhere.com> a écrit dans le message de news:
Odd5qqr1EHA.132@tk2msftngp13.phx.gbl...
> Après exécution d'une procédure, côté client j'ai les métadonnées sur
> colonnes (type, taille etc...).
> Je voudrais faire la même chose mais sur le serveur.
>
> Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
>
> INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que je
> connaisse la structure...
> SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
>
> Est-ce possible ? (me reste toujours la possibilité de faire un outil
> client
> plutôt qu'un script SQL).
>
> Merci d'avance.
>
> Patrice
> --
>
>
>
select * into #tmp from openQuery(localhost,'EXECUTE
BaseDeDonnée.dbo.Procédure')
Il faut d'abord déclarer ton serveur en serveur distant (mais lui même en
fait !).
sp_addserver 'localhost'
GO
sp_serveroption 'localhost', 'data access', true
GO
--
Thierry
"Patrice" a écrit dans le message de news:
> Après exécution d'une procédure, côté client j'ai les métadonnées sur
> colonnes (type, taille etc...).
> Je voudrais faire la même chose mais sur le serveur.
>
> Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
>
> INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que je
> connaisse la structure...
> SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
>
> Est-ce possible ? (me reste toujours la possibilité de faire un outil
> client
> plutôt qu'un script SQL).
>
> Merci d'avance.
>
> Patrice
> --
>
>
>
select * into #tmp from openQuery(localhost,'EXECUTE
BaseDeDonnée.dbo.Procédure')
Il faut d'abord déclarer ton serveur en serveur distant (mais lui même en
fait !).
sp_addserver 'localhost'
GO
sp_serveroption 'localhost', 'data access', true
GO
--
Thierry
"Patrice" a écrit dans le message de news:
> Après exécution d'une procédure, côté client j'ai les métadonnées sur
> colonnes (type, taille etc...).
> Je voudrais faire la même chose mais sur le serveur.
>
> Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
>
> INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que je
> connaisse la structure...
> SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
>
> Est-ce possible ? (me reste toujours la possibilité de faire un outil
> client
> plutôt qu'un script SQL).
>
> Merci d'avance.
>
> Patrice
> --
>
>
>
select * into #tmp from openQuery(localhost,'EXECUTE
BaseDeDonnée.dbo.Procédure')
Il faut d'abord déclarer ton serveur en serveur distant (mais lui même en
fait !).
sp_addserver 'localhost'
GO
sp_serveroption 'localhost', 'data access', true
GO
--
Thierry
"Patrice" <nobody@nowhere.com> a écrit dans le message de news:
Odd5qqr1EHA.132@tk2msftngp13.phx.gbl...
> Après exécution d'une procédure, côté client j'ai les métadonnées sur
> colonnes (type, taille etc...).
> Je voudrais faire la même chose mais sur le serveur.
>
> Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
>
> INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que je
> connaisse la structure...
> SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
>
> Est-ce possible ? (me reste toujours la possibilité de faire un outil
> client
> plutôt qu'un script SQL).
>
> Merci d'avance.
>
> Patrice
> --
>
>
>
select * into #tmp from openQuery(localhost,'EXECUTE
BaseDeDonnée.dbo.Procédure')
Il faut d'abord déclarer ton serveur en serveur distant (mais lui même en
fait !).
sp_addserver 'localhost'
GO
sp_serveroption 'localhost', 'data access', true
GO
--
Thierry
"Patrice" a écrit dans le message de news:
> Après exécution d'une procédure, côté client j'ai les métadonnées sur
> colonnes (type, taille etc...).
> Je voudrais faire la même chose mais sur le serveur.
>
> Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
>
> INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que je
> connaisse la structure...
> SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
>
> Est-ce possible ? (me reste toujours la possibilité de faire un outil
> client
> plutôt qu'un script SQL).
>
> Merci d'avance.
>
> Patrice
> --
>
>
>
intéressant, on peut se passer du serveur lié en utilisant openrowset
select * into #sp_who from openrowset('MSDASQL',
'DRIVER={SQL Server};SERVER=MonServeur; Initial Catalog=master;Integrated
Security=True',
'EXEC master.dbo.sp_who active')
toutes les procédures ne sont pas cependant exécutables ainsi, par ex qd
on
a une table temp dans la proc
br
"Thierry" wrote in message
news:O8zh7#select * into #tmp from openQuery(localhost,'EXECUTE
BaseDeDonnée.dbo.Procédure')
Il faut d'abord déclarer ton serveur en serveur distant (mais lui même en
fait !).
sp_addserver 'localhost'
GO
sp_serveroption 'localhost', 'data access', true
GO
--
Thierry
"Patrice" a écrit dans le message de news:
> Après exécution d'une procédure, côté client j'ai les métadonnées sur
les> colonnes (type, taille etc...).
> Je voudrais faire la même chose mais sur le serveur.
>
> Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
>
> INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que je
> connaisse la structure...
> SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
>
> Est-ce possible ? (me reste toujours la possibilité de faire un outil
> client
> plutôt qu'un script SQL).
>
> Merci d'avance.
>
> Patrice
> --
>
>
>
intéressant, on peut se passer du serveur lié en utilisant openrowset
select * into #sp_who from openrowset('MSDASQL',
'DRIVER={SQL Server};SERVER=MonServeur; Initial Catalog=master;Integrated
Security=True',
'EXEC master.dbo.sp_who active')
toutes les procédures ne sont pas cependant exécutables ainsi, par ex qd
on
a une table temp dans la proc
br
"Thierry" <tper_NOSPAM@vfemail.net> wrote in message
news:O8zh7#u1EHA.2716@TK2MSFTNGP14.phx.gbl...
select * into #tmp from openQuery(localhost,'EXECUTE
BaseDeDonnée.dbo.Procédure')
Il faut d'abord déclarer ton serveur en serveur distant (mais lui même en
fait !).
sp_addserver 'localhost'
GO
sp_serveroption 'localhost', 'data access', true
GO
--
Thierry
"Patrice" <nobody@nowhere.com> a écrit dans le message de news:
Odd5qqr1EHA.132@tk2msftngp13.phx.gbl...
> Après exécution d'une procédure, côté client j'ai les métadonnées sur
les
> colonnes (type, taille etc...).
> Je voudrais faire la même chose mais sur le serveur.
>
> Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
>
> INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que je
> connaisse la structure...
> SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
>
> Est-ce possible ? (me reste toujours la possibilité de faire un outil
> client
> plutôt qu'un script SQL).
>
> Merci d'avance.
>
> Patrice
> --
>
>
>
intéressant, on peut se passer du serveur lié en utilisant openrowset
select * into #sp_who from openrowset('MSDASQL',
'DRIVER={SQL Server};SERVER=MonServeur; Initial Catalog=master;Integrated
Security=True',
'EXEC master.dbo.sp_who active')
toutes les procédures ne sont pas cependant exécutables ainsi, par ex qd
on
a une table temp dans la proc
br
"Thierry" wrote in message
news:O8zh7#select * into #tmp from openQuery(localhost,'EXECUTE
BaseDeDonnée.dbo.Procédure')
Il faut d'abord déclarer ton serveur en serveur distant (mais lui même en
fait !).
sp_addserver 'localhost'
GO
sp_serveroption 'localhost', 'data access', true
GO
--
Thierry
"Patrice" a écrit dans le message de news:
> Après exécution d'une procédure, côté client j'ai les métadonnées sur
les> colonnes (type, taille etc...).
> Je voudrais faire la même chose mais sur le serveur.
>
> Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
>
> INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que je
> connaisse la structure...
> SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
>
> Est-ce possible ? (me reste toujours la possibilité de faire un outil
> client
> plutôt qu'un script SQL).
>
> Merci d'avance.
>
> Patrice
> --
>
>
>
Avec OpenRowSet, ça va passer par oledb(+odbc dans ton exemple) alors
qu'avec un serveur déclaré avec sp_addserver, ça me semble beaucoup plus
direct.
Cela dit, dans le cas présenté par Patrice, il serait d'écrire une
qui retrourne une table plutôt qu'une procédure stockée.
--
Thierry
"bruno reiter [MVP]" <remove.this! a écrit dans le
de news: uGV%23B$
> intéressant, on peut se passer du serveur lié en utilisant openrowset
>
> select * into #sp_who from openrowset('MSDASQL',
> 'DRIVER={SQL Server};SERVER=MonServeur; Initial
> Security=True',
> 'EXEC master.dbo.sp_who active')
>
> toutes les procédures ne sont pas cependant exécutables ainsi, par ex qd
> on
> a une table temp dans la proc
>
> br
>
>
> "Thierry" wrote in message
> news:O8zh7#
>> select * into #tmp from openQuery(localhost,'EXECUTE
>> BaseDeDonnée.dbo.Procédure')
>>
>> Il faut d'abord déclarer ton serveur en serveur distant (mais lui même
>> fait !).
>>
>> sp_addserver 'localhost'
>> GO
>> sp_serveroption 'localhost', 'data access', true
>> GO
>>
>> --
>> Thierry
>>
>>
>> "Patrice" a écrit dans le message de news:
>>
>> > Après exécution d'une procédure, côté client j'ai les métadonnées sur
> les
>> > colonnes (type, taille etc...).
>> > Je voudrais faire la même chose mais sur le serveur.
>> >
>> > Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
>> >
>> > INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que je
>> > connaisse la structure...
>> > SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
>> >
>> > Est-ce possible ? (me reste toujours la possibilité de faire un outil
>> > client
>> > plutôt qu'un script SQL).
>> >
>> > Merci d'avance.
>> >
>> > Patrice
>> > --
>> >
>> >
>> >
>>
>>
>
>
Avec OpenRowSet, ça va passer par oledb(+odbc dans ton exemple) alors
qu'avec un serveur déclaré avec sp_addserver, ça me semble beaucoup plus
direct.
Cela dit, dans le cas présenté par Patrice, il serait d'écrire une
qui retrourne une table plutôt qu'une procédure stockée.
--
Thierry
"bruno reiter [MVP]" <remove.this!.br33@bol.com.br> a écrit dans le
de news: uGV%23B$61EHA.3416@TK2MSFTNGP09.phx.gbl...
> intéressant, on peut se passer du serveur lié en utilisant openrowset
>
> select * into #sp_who from openrowset('MSDASQL',
> 'DRIVER={SQL Server};SERVER=MonServeur; Initial
> Security=True',
> 'EXEC master.dbo.sp_who active')
>
> toutes les procédures ne sont pas cependant exécutables ainsi, par ex qd
> on
> a une table temp dans la proc
>
> br
>
>
> "Thierry" <tper_NOSPAM@vfemail.net> wrote in message
> news:O8zh7#u1EHA.2716@TK2MSFTNGP14.phx.gbl...
>> select * into #tmp from openQuery(localhost,'EXECUTE
>> BaseDeDonnée.dbo.Procédure')
>>
>> Il faut d'abord déclarer ton serveur en serveur distant (mais lui même
>> fait !).
>>
>> sp_addserver 'localhost'
>> GO
>> sp_serveroption 'localhost', 'data access', true
>> GO
>>
>> --
>> Thierry
>>
>>
>> "Patrice" <nobody@nowhere.com> a écrit dans le message de news:
>> Odd5qqr1EHA.132@tk2msftngp13.phx.gbl...
>> > Après exécution d'une procédure, côté client j'ai les métadonnées sur
> les
>> > colonnes (type, taille etc...).
>> > Je voudrais faire la même chose mais sur le serveur.
>> >
>> > Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
>> >
>> > INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que je
>> > connaisse la structure...
>> > SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
>> >
>> > Est-ce possible ? (me reste toujours la possibilité de faire un outil
>> > client
>> > plutôt qu'un script SQL).
>> >
>> > Merci d'avance.
>> >
>> > Patrice
>> > --
>> >
>> >
>> >
>>
>>
>
>
Avec OpenRowSet, ça va passer par oledb(+odbc dans ton exemple) alors
qu'avec un serveur déclaré avec sp_addserver, ça me semble beaucoup plus
direct.
Cela dit, dans le cas présenté par Patrice, il serait d'écrire une
qui retrourne une table plutôt qu'une procédure stockée.
--
Thierry
"bruno reiter [MVP]" <remove.this! a écrit dans le
de news: uGV%23B$
> intéressant, on peut se passer du serveur lié en utilisant openrowset
>
> select * into #sp_who from openrowset('MSDASQL',
> 'DRIVER={SQL Server};SERVER=MonServeur; Initial
> Security=True',
> 'EXEC master.dbo.sp_who active')
>
> toutes les procédures ne sont pas cependant exécutables ainsi, par ex qd
> on
> a une table temp dans la proc
>
> br
>
>
> "Thierry" wrote in message
> news:O8zh7#
>> select * into #tmp from openQuery(localhost,'EXECUTE
>> BaseDeDonnée.dbo.Procédure')
>>
>> Il faut d'abord déclarer ton serveur en serveur distant (mais lui même
>> fait !).
>>
>> sp_addserver 'localhost'
>> GO
>> sp_serveroption 'localhost', 'data access', true
>> GO
>>
>> --
>> Thierry
>>
>>
>> "Patrice" a écrit dans le message de news:
>>
>> > Après exécution d'une procédure, côté client j'ai les métadonnées sur
> les
>> > colonnes (type, taille etc...).
>> > Je voudrais faire la même chose mais sur le serveur.
>> >
>> > Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
>> >
>> > INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que je
>> > connaisse la structure...
>> > SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
>> >
>> > Est-ce possible ? (me reste toujours la possibilité de faire un outil
>> > client
>> > plutôt qu'un script SQL).
>> >
>> > Merci d'avance.
>> >
>> > Patrice
>> > --
>> >
>> >
>> >
>>
>>
>
>
A ma connaissance, le mode d'accès est identique pour openrowset et
openquery, on évite juste les serveurs liés pour des raisons de sécurité
(quand on peut) et s'il s'agit de requêtes ad hoc
j'ai utilisé MSDASQL seulement pour pouvoir utiliser une connection
approuvée.
comme tu dis une fonction est plus efficace quand c'est possible.
br
"Thierry" wrote in message
news:#Avec OpenRowSet, ça va passer par oledb(+odbc dans ton exemple) alors
qu'avec un serveur déclaré avec sp_addserver, ça me semble beaucoup plus
direct.
Cela dit, dans le cas présenté par Patrice, il serait d'écrire une
fonctionqui retrourne une table plutôt qu'une procédure stockée.
--
Thierry
"bruno reiter [MVP]" <remove.this! a écrit dans le
messagede news: uGV%23B$
> intéressant, on peut se passer du serveur lié en utilisant openrowset
>
> select * into #sp_who from openrowset('MSDASQL',
> 'DRIVER={SQL Server};SERVER=MonServeur; Initial
Catalog=master;Integrated> Security=True',
> 'EXEC master.dbo.sp_who active')
>
> toutes les procédures ne sont pas cependant exécutables ainsi, par ex
> qd
> on
> a une table temp dans la proc
>
> br
>
>
> "Thierry" wrote in message
> news:O8zh7#
>> select * into #tmp from openQuery(localhost,'EXECUTE
>> BaseDeDonnée.dbo.Procédure')
>>
>> Il faut d'abord déclarer ton serveur en serveur distant (mais lui même
en>> fait !).
>>
>> sp_addserver 'localhost'
>> GO
>> sp_serveroption 'localhost', 'data access', true
>> GO
>>
>> --
>> Thierry
>>
>>
>> "Patrice" a écrit dans le message de news:
>>
>> > Après exécution d'une procédure, côté client j'ai les métadonnées
>> > sur
> les
>> > colonnes (type, taille etc...).
>> > Je voudrais faire la même chose mais sur le serveur.
>> >
>> > Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
>> >
>> > INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que je
>> > connaisse la structure...
>> > SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
>> >
>> > Est-ce possible ? (me reste toujours la possibilité de faire un
>> > outil
>> > client
>> > plutôt qu'un script SQL).
>> >
>> > Merci d'avance.
>> >
>> > Patrice
>> > --
>> >
>> >
>> >
>>
>>
>
>
A ma connaissance, le mode d'accès est identique pour openrowset et
openquery, on évite juste les serveurs liés pour des raisons de sécurité
(quand on peut) et s'il s'agit de requêtes ad hoc
j'ai utilisé MSDASQL seulement pour pouvoir utiliser une connection
approuvée.
comme tu dis une fonction est plus efficace quand c'est possible.
br
"Thierry" <tper_NOSPAM@vfemail.net> wrote in message
news:#OSMp271EHA.3708@TK2MSFTNGP14.phx.gbl...
Avec OpenRowSet, ça va passer par oledb(+odbc dans ton exemple) alors
qu'avec un serveur déclaré avec sp_addserver, ça me semble beaucoup plus
direct.
Cela dit, dans le cas présenté par Patrice, il serait d'écrire une
fonction
qui retrourne une table plutôt qu'une procédure stockée.
--
Thierry
"bruno reiter [MVP]" <remove.this!.br33@bol.com.br> a écrit dans le
message
de news: uGV%23B$61EHA.3416@TK2MSFTNGP09.phx.gbl...
> intéressant, on peut se passer du serveur lié en utilisant openrowset
>
> select * into #sp_who from openrowset('MSDASQL',
> 'DRIVER={SQL Server};SERVER=MonServeur; Initial
Catalog=master;Integrated
> Security=True',
> 'EXEC master.dbo.sp_who active')
>
> toutes les procédures ne sont pas cependant exécutables ainsi, par ex
> qd
> on
> a une table temp dans la proc
>
> br
>
>
> "Thierry" <tper_NOSPAM@vfemail.net> wrote in message
> news:O8zh7#u1EHA.2716@TK2MSFTNGP14.phx.gbl...
>> select * into #tmp from openQuery(localhost,'EXECUTE
>> BaseDeDonnée.dbo.Procédure')
>>
>> Il faut d'abord déclarer ton serveur en serveur distant (mais lui même
en
>> fait !).
>>
>> sp_addserver 'localhost'
>> GO
>> sp_serveroption 'localhost', 'data access', true
>> GO
>>
>> --
>> Thierry
>>
>>
>> "Patrice" <nobody@nowhere.com> a écrit dans le message de news:
>> Odd5qqr1EHA.132@tk2msftngp13.phx.gbl...
>> > Après exécution d'une procédure, côté client j'ai les métadonnées
>> > sur
> les
>> > colonnes (type, taille etc...).
>> > Je voudrais faire la même chose mais sur le serveur.
>> >
>> > Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
>> >
>> > INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que je
>> > connaisse la structure...
>> > SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
>> >
>> > Est-ce possible ? (me reste toujours la possibilité de faire un
>> > outil
>> > client
>> > plutôt qu'un script SQL).
>> >
>> > Merci d'avance.
>> >
>> > Patrice
>> > --
>> >
>> >
>> >
>>
>>
>
>
A ma connaissance, le mode d'accès est identique pour openrowset et
openquery, on évite juste les serveurs liés pour des raisons de sécurité
(quand on peut) et s'il s'agit de requêtes ad hoc
j'ai utilisé MSDASQL seulement pour pouvoir utiliser une connection
approuvée.
comme tu dis une fonction est plus efficace quand c'est possible.
br
"Thierry" wrote in message
news:#Avec OpenRowSet, ça va passer par oledb(+odbc dans ton exemple) alors
qu'avec un serveur déclaré avec sp_addserver, ça me semble beaucoup plus
direct.
Cela dit, dans le cas présenté par Patrice, il serait d'écrire une
fonctionqui retrourne une table plutôt qu'une procédure stockée.
--
Thierry
"bruno reiter [MVP]" <remove.this! a écrit dans le
messagede news: uGV%23B$
> intéressant, on peut se passer du serveur lié en utilisant openrowset
>
> select * into #sp_who from openrowset('MSDASQL',
> 'DRIVER={SQL Server};SERVER=MonServeur; Initial
Catalog=master;Integrated> Security=True',
> 'EXEC master.dbo.sp_who active')
>
> toutes les procédures ne sont pas cependant exécutables ainsi, par ex
> qd
> on
> a une table temp dans la proc
>
> br
>
>
> "Thierry" wrote in message
> news:O8zh7#
>> select * into #tmp from openQuery(localhost,'EXECUTE
>> BaseDeDonnée.dbo.Procédure')
>>
>> Il faut d'abord déclarer ton serveur en serveur distant (mais lui même
en>> fait !).
>>
>> sp_addserver 'localhost'
>> GO
>> sp_serveroption 'localhost', 'data access', true
>> GO
>>
>> --
>> Thierry
>>
>>
>> "Patrice" a écrit dans le message de news:
>>
>> > Après exécution d'une procédure, côté client j'ai les métadonnées
>> > sur
> les
>> > colonnes (type, taille etc...).
>> > Je voudrais faire la même chose mais sur le serveur.
>> >
>> > Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
>> >
>> > INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que je
>> > connaisse la structure...
>> > SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
>> >
>> > Est-ce possible ? (me reste toujours la possibilité de faire un
>> > outil
>> > client
>> > plutôt qu'un script SQL).
>> >
>> > Merci d'avance.
>> >
>> > Patrice
>> > --
>> >
>> >
>> >
>>
>>
>
>
A ton avis, quel est la diffèrence entre sp_addLinkedServer et
?
Car c'est surtout de celà qu'il s'agit.
--
Thierry
"bruno reiter [MVP]" <remove.this! a écrit dans le
de news:
>A ma connaissance, le mode d'accès est identique pour openrowset et
> openquery, on évite juste les serveurs liés pour des raisons de sécurité
> (quand on peut) et s'il s'agit de requêtes ad hoc
>
> j'ai utilisé MSDASQL seulement pour pouvoir utiliser une connection
> approuvée.
>
> comme tu dis une fonction est plus efficace quand c'est possible.
>
> br
>
> "Thierry" wrote in message
> news:#
>> Avec OpenRowSet, ça va passer par oledb(+odbc dans ton exemple) alors
>> qu'avec un serveur déclaré avec sp_addserver, ça me semble beaucoup
>> direct.
>>
>> Cela dit, dans le cas présenté par Patrice, il serait d'écrire une
> fonction
>> qui retrourne une table plutôt qu'une procédure stockée.
>>
>> --
>> Thierry
>>
>>
>> "bruno reiter [MVP]" <remove.this! a écrit dans le
> message
>> de news: uGV%23B$
>> > intéressant, on peut se passer du serveur lié en utilisant openrowset
>> >
>> > select * into #sp_who from openrowset('MSDASQL',
>> > 'DRIVER={SQL Server};SERVER=MonServeur; Initial
> Catalog=master;Integrated
>> > Security=True',
>> > 'EXEC master.dbo.sp_who active')
>> >
>> > toutes les procédures ne sont pas cependant exécutables ainsi, par ex
>> > qd
>> > on
>> > a une table temp dans la proc
>> >
>> > br
>> >
>> >
>> > "Thierry" wrote in message
>> > news:O8zh7#
>> >> select * into #tmp from openQuery(localhost,'EXECUTE
>> >> BaseDeDonnée.dbo.Procédure')
>> >>
>> >> Il faut d'abord déclarer ton serveur en serveur distant (mais lui
> en
>> >> fait !).
>> >>
>> >> sp_addserver 'localhost'
>> >> GO
>> >> sp_serveroption 'localhost', 'data access', true
>> >> GO
>> >>
>> >> --
>> >> Thierry
>> >>
>> >>
>> >> "Patrice" a écrit dans le message de news:
>> >>
>> >> > Après exécution d'une procédure, côté client j'ai les métadonnées
>> >> > sur
>> > les
>> >> > colonnes (type, taille etc...).
>> >> > Je voudrais faire la même chose mais sur le serveur.
>> >> >
>> >> > Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
>> >> >
>> >> > INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que
>> >> > connaisse la structure...
>> >> > SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
>> >> >
>> >> > Est-ce possible ? (me reste toujours la possibilité de faire un
>> >> > outil
>> >> > client
>> >> > plutôt qu'un script SQL).
>> >> >
>> >> > Merci d'avance.
>> >> >
>> >> > Patrice
>> >> > --
>> >> >
>> >> >
>> >> >
>> >>
>> >>
>> >
>> >
>>
>>
>
>
A ton avis, quel est la diffèrence entre sp_addLinkedServer et
?
Car c'est surtout de celà qu'il s'agit.
--
Thierry
"bruno reiter [MVP]" <remove.this!.br33@bol.com.br> a écrit dans le
de news: ObXOMD81EHA.2644@TK2MSFTNGP11.phx.gbl...
>A ma connaissance, le mode d'accès est identique pour openrowset et
> openquery, on évite juste les serveurs liés pour des raisons de sécurité
> (quand on peut) et s'il s'agit de requêtes ad hoc
>
> j'ai utilisé MSDASQL seulement pour pouvoir utiliser une connection
> approuvée.
>
> comme tu dis une fonction est plus efficace quand c'est possible.
>
> br
>
> "Thierry" <tper_NOSPAM@vfemail.net> wrote in message
> news:#OSMp271EHA.3708@TK2MSFTNGP14.phx.gbl...
>> Avec OpenRowSet, ça va passer par oledb(+odbc dans ton exemple) alors
>> qu'avec un serveur déclaré avec sp_addserver, ça me semble beaucoup
>> direct.
>>
>> Cela dit, dans le cas présenté par Patrice, il serait d'écrire une
> fonction
>> qui retrourne une table plutôt qu'une procédure stockée.
>>
>> --
>> Thierry
>>
>>
>> "bruno reiter [MVP]" <remove.this!.br33@bol.com.br> a écrit dans le
> message
>> de news: uGV%23B$61EHA.3416@TK2MSFTNGP09.phx.gbl...
>> > intéressant, on peut se passer du serveur lié en utilisant openrowset
>> >
>> > select * into #sp_who from openrowset('MSDASQL',
>> > 'DRIVER={SQL Server};SERVER=MonServeur; Initial
> Catalog=master;Integrated
>> > Security=True',
>> > 'EXEC master.dbo.sp_who active')
>> >
>> > toutes les procédures ne sont pas cependant exécutables ainsi, par ex
>> > qd
>> > on
>> > a une table temp dans la proc
>> >
>> > br
>> >
>> >
>> > "Thierry" <tper_NOSPAM@vfemail.net> wrote in message
>> > news:O8zh7#u1EHA.2716@TK2MSFTNGP14.phx.gbl...
>> >> select * into #tmp from openQuery(localhost,'EXECUTE
>> >> BaseDeDonnée.dbo.Procédure')
>> >>
>> >> Il faut d'abord déclarer ton serveur en serveur distant (mais lui
> en
>> >> fait !).
>> >>
>> >> sp_addserver 'localhost'
>> >> GO
>> >> sp_serveroption 'localhost', 'data access', true
>> >> GO
>> >>
>> >> --
>> >> Thierry
>> >>
>> >>
>> >> "Patrice" <nobody@nowhere.com> a écrit dans le message de news:
>> >> Odd5qqr1EHA.132@tk2msftngp13.phx.gbl...
>> >> > Après exécution d'une procédure, côté client j'ai les métadonnées
>> >> > sur
>> > les
>> >> > colonnes (type, taille etc...).
>> >> > Je voudrais faire la même chose mais sur le serveur.
>> >> >
>> >> > Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
>> >> >
>> >> > INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que
>> >> > connaisse la structure...
>> >> > SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
>> >> >
>> >> > Est-ce possible ? (me reste toujours la possibilité de faire un
>> >> > outil
>> >> > client
>> >> > plutôt qu'un script SQL).
>> >> >
>> >> > Merci d'avance.
>> >> >
>> >> > Patrice
>> >> > --
>> >> >
>> >> >
>> >> >
>> >>
>> >>
>> >
>> >
>>
>>
>
>
A ton avis, quel est la diffèrence entre sp_addLinkedServer et
?
Car c'est surtout de celà qu'il s'agit.
--
Thierry
"bruno reiter [MVP]" <remove.this! a écrit dans le
de news:
>A ma connaissance, le mode d'accès est identique pour openrowset et
> openquery, on évite juste les serveurs liés pour des raisons de sécurité
> (quand on peut) et s'il s'agit de requêtes ad hoc
>
> j'ai utilisé MSDASQL seulement pour pouvoir utiliser une connection
> approuvée.
>
> comme tu dis une fonction est plus efficace quand c'est possible.
>
> br
>
> "Thierry" wrote in message
> news:#
>> Avec OpenRowSet, ça va passer par oledb(+odbc dans ton exemple) alors
>> qu'avec un serveur déclaré avec sp_addserver, ça me semble beaucoup
>> direct.
>>
>> Cela dit, dans le cas présenté par Patrice, il serait d'écrire une
> fonction
>> qui retrourne une table plutôt qu'une procédure stockée.
>>
>> --
>> Thierry
>>
>>
>> "bruno reiter [MVP]" <remove.this! a écrit dans le
> message
>> de news: uGV%23B$
>> > intéressant, on peut se passer du serveur lié en utilisant openrowset
>> >
>> > select * into #sp_who from openrowset('MSDASQL',
>> > 'DRIVER={SQL Server};SERVER=MonServeur; Initial
> Catalog=master;Integrated
>> > Security=True',
>> > 'EXEC master.dbo.sp_who active')
>> >
>> > toutes les procédures ne sont pas cependant exécutables ainsi, par ex
>> > qd
>> > on
>> > a une table temp dans la proc
>> >
>> > br
>> >
>> >
>> > "Thierry" wrote in message
>> > news:O8zh7#
>> >> select * into #tmp from openQuery(localhost,'EXECUTE
>> >> BaseDeDonnée.dbo.Procédure')
>> >>
>> >> Il faut d'abord déclarer ton serveur en serveur distant (mais lui
> en
>> >> fait !).
>> >>
>> >> sp_addserver 'localhost'
>> >> GO
>> >> sp_serveroption 'localhost', 'data access', true
>> >> GO
>> >>
>> >> --
>> >> Thierry
>> >>
>> >>
>> >> "Patrice" a écrit dans le message de news:
>> >>
>> >> > Après exécution d'une procédure, côté client j'ai les métadonnées
>> >> > sur
>> > les
>> >> > colonnes (type, taille etc...).
>> >> > Je voudrais faire la même chose mais sur le serveur.
>> >> >
>> >> > Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
>> >> >
>> >> > INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que
>> >> > connaisse la structure...
>> >> > SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
>> >> >
>> >> > Est-ce possible ? (me reste toujours la possibilité de faire un
>> >> > outil
>> >> > client
>> >> > plutôt qu'un script SQL).
>> >> >
>> >> > Merci d'avance.
>> >> >
>> >> > Patrice
>> >> > --
>> >> >
>> >> >
>> >> >
>> >>
>> >>
>> >
>> >
>>
>>
>
>
Avec OpenRowSet, ça va passer par oledb(+odbc dans ton exemple) alors
qu'avec un serveur déclaré avec sp_addserver, ça me semble beaucoup plus
direct.
Cela dit, dans le cas présenté par Patrice, il serait d'écrire une
qui retrourne une table plutôt qu'une procédure stockée.
--
Thierry
"bruno reiter [MVP]" <remove.this! a écrit dans le
de news: uGV%23B$
> intéressant, on peut se passer du serveur lié en utilisant openrowset
>
> select * into #sp_who from openrowset('MSDASQL',
> 'DRIVER={SQL Server};SERVER=MonServeur; Initial
> Security=True',
> 'EXEC master.dbo.sp_who active')
>
> toutes les procédures ne sont pas cependant exécutables ainsi, par ex qd
> on
> a une table temp dans la proc
>
> br
>
>
> "Thierry" wrote in message
> news:O8zh7#
>> select * into #tmp from openQuery(localhost,'EXECUTE
>> BaseDeDonnée.dbo.Procédure')
>>
>> Il faut d'abord déclarer ton serveur en serveur distant (mais lui même
>> fait !).
>>
>> sp_addserver 'localhost'
>> GO
>> sp_serveroption 'localhost', 'data access', true
>> GO
>>
>> --
>> Thierry
>>
>>
>> "Patrice" a écrit dans le message de news:
>>
>> > Après exécution d'une procédure, côté client j'ai les métadonnées sur
> les
>> > colonnes (type, taille etc...).
>> > Je voudrais faire la même chose mais sur le serveur.
>> >
>> > Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
>> >
>> > INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que je
>> > connaisse la structure...
>> > SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
>> >
>> > Est-ce possible ? (me reste toujours la possibilité de faire un outil
>> > client
>> > plutôt qu'un script SQL).
>> >
>> > Merci d'avance.
>> >
>> > Patrice
>> > --
>> >
>> >
>> >
>>
>>
>
>
Avec OpenRowSet, ça va passer par oledb(+odbc dans ton exemple) alors
qu'avec un serveur déclaré avec sp_addserver, ça me semble beaucoup plus
direct.
Cela dit, dans le cas présenté par Patrice, il serait d'écrire une
qui retrourne une table plutôt qu'une procédure stockée.
--
Thierry
"bruno reiter [MVP]" <remove.this!.br33@bol.com.br> a écrit dans le
de news: uGV%23B$61EHA.3416@TK2MSFTNGP09.phx.gbl...
> intéressant, on peut se passer du serveur lié en utilisant openrowset
>
> select * into #sp_who from openrowset('MSDASQL',
> 'DRIVER={SQL Server};SERVER=MonServeur; Initial
> Security=True',
> 'EXEC master.dbo.sp_who active')
>
> toutes les procédures ne sont pas cependant exécutables ainsi, par ex qd
> on
> a une table temp dans la proc
>
> br
>
>
> "Thierry" <tper_NOSPAM@vfemail.net> wrote in message
> news:O8zh7#u1EHA.2716@TK2MSFTNGP14.phx.gbl...
>> select * into #tmp from openQuery(localhost,'EXECUTE
>> BaseDeDonnée.dbo.Procédure')
>>
>> Il faut d'abord déclarer ton serveur en serveur distant (mais lui même
>> fait !).
>>
>> sp_addserver 'localhost'
>> GO
>> sp_serveroption 'localhost', 'data access', true
>> GO
>>
>> --
>> Thierry
>>
>>
>> "Patrice" <nobody@nowhere.com> a écrit dans le message de news:
>> Odd5qqr1EHA.132@tk2msftngp13.phx.gbl...
>> > Après exécution d'une procédure, côté client j'ai les métadonnées sur
> les
>> > colonnes (type, taille etc...).
>> > Je voudrais faire la même chose mais sur le serveur.
>> >
>> > Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
>> >
>> > INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que je
>> > connaisse la structure...
>> > SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
>> >
>> > Est-ce possible ? (me reste toujours la possibilité de faire un outil
>> > client
>> > plutôt qu'un script SQL).
>> >
>> > Merci d'avance.
>> >
>> > Patrice
>> > --
>> >
>> >
>> >
>>
>>
>
>
Avec OpenRowSet, ça va passer par oledb(+odbc dans ton exemple) alors
qu'avec un serveur déclaré avec sp_addserver, ça me semble beaucoup plus
direct.
Cela dit, dans le cas présenté par Patrice, il serait d'écrire une
qui retrourne une table plutôt qu'une procédure stockée.
--
Thierry
"bruno reiter [MVP]" <remove.this! a écrit dans le
de news: uGV%23B$
> intéressant, on peut se passer du serveur lié en utilisant openrowset
>
> select * into #sp_who from openrowset('MSDASQL',
> 'DRIVER={SQL Server};SERVER=MonServeur; Initial
> Security=True',
> 'EXEC master.dbo.sp_who active')
>
> toutes les procédures ne sont pas cependant exécutables ainsi, par ex qd
> on
> a une table temp dans la proc
>
> br
>
>
> "Thierry" wrote in message
> news:O8zh7#
>> select * into #tmp from openQuery(localhost,'EXECUTE
>> BaseDeDonnée.dbo.Procédure')
>>
>> Il faut d'abord déclarer ton serveur en serveur distant (mais lui même
>> fait !).
>>
>> sp_addserver 'localhost'
>> GO
>> sp_serveroption 'localhost', 'data access', true
>> GO
>>
>> --
>> Thierry
>>
>>
>> "Patrice" a écrit dans le message de news:
>>
>> > Après exécution d'une procédure, côté client j'ai les métadonnées sur
> les
>> > colonnes (type, taille etc...).
>> > Je voudrais faire la même chose mais sur le serveur.
>> >
>> > Pour mieux exprimer mon idée j'aurais voulu quelque chose comme :
>> >
>> > INSERT INTO #tmp EXECUTE MaProcédure -- Sauf qu'il faut déjà que je
>> > connaisse la structure...
>> > SELECT * FROM Information_Schema.Columns WHERE Table_Name='#tmp'
>> >
>> > Est-ce possible ? (me reste toujours la possibilité de faire un outil
>> > client
>> > plutôt qu'un script SQL).
>> >
>> > Merci d'avance.
>> >
>> > Patrice
>> > --
>> >
>> >
>> >
>>
>>
>
>