2009-06-16 101 views
1

如何查詢存儲過程的結果?來自usp的sql查詢結果

這裏是我的例子:

sp_columsn 'tblSomeTableName' --// Returns a recordset 

select COLUMN_NAME from [sp_columns 'tblSomeTableName'] --// Raises an error saying "Invalid object name 'sp_columns 'tblSomeTableName''." 

回答

2

只要你知道存儲過程的結果的結構,你可以創建一個表(TEMP,變量等),並執行存儲過程到表。

CREATE TABLE #MyTestTable 
(TABLE_QUALIFIER sysname, 
TABLE_OWNER sysname, 
TABLE_NAME sysname, 
COLUMN_NAME sysname, 
DATA_TYPE smallint, 
TYPE_NAME sysname, 
PRECISION int, 
LENGTH int, 
SCALE smallint, 
RADIX smallint, 
NULLABLE smallint, 
REMARKS varchar(254), 
COLUMN_DEF nvarchar(4000), 
SQL_DATA_TYPE smallint, 
SQL_DATETIME_SUB smallint, 
CHAR_OCTET_LENGTH int, 
ORDINAL_POSITION int, 
IS_NULLABLE varchar(254), 
SS_DATA_TYPE tinyint) 

INSERT #MyTempTable 
EXEC sp_columns 'tblSomeTableName' 

SELECT COLUMN_NAME 
FROM #MyTempTable 
WHERE ... 
+1

這是正確的方法。不幸的是,如果沒有臨時表,沒有任何「直接」的方法。 – BradC 2009-06-16 19:29:11

+0

有做迴環查詢 – SQLMenace 2009-06-16 19:30:17