3

xp_cmdshellの結果をselectクエリと組み合わせようとしています。ユニオンを試し、一時テーブルの作成について読みましたが、結果として1列しかありません。xp_cmdshellより正確に言うと、ユニオンベースのSQLインジェクションで使用しようとしているため、selectクエリの結果を組み合わせるための小さなクエリが必要です。

例えば:

Select name from employee
union
exec xp_cmdshell 'whoami'

私はこれがうまくいかないことを知っていますが、いくらか似ているといいでしょう:)

4

2 に答える 2

2

このストアドプロシージャが何を返し、何を出力するかを知っておく必要があります。次に、このプロシージャが返すテーブルスキーマがわかっている場合は、次の構文を使用できます。

DECLARE @procedureOutput nvarchar(max)
SET @procedureOutput=Exec xp_cmdshell 'dir'
SELECT name FROM employee union @procedureOutput

2つの異なるデータ型を変換する必要がありCASTCONVERTコマンドが適している場合。

于 2012-07-16T11:22:04.627 に答える
-1

一時テーブルを作成し、#temp EXEC ..に挿入するか、OPENROESETを使用します。これを参照してください http://beyondrelational.com/modules/2/blogs/70/posts/10812/select-columns-from-exec-procedurename-is-this-possible.aspx

于 2012-07-16T11:24:26.153 に答える