如何通过sp_depends
单独在存储过程中使用表名。
例如
EXEC sp_depends Samplesp1
它提供samplesp1
中使用的表名及其列名。但我只需要表名。
答案 0 :(得分:2)
您可以将结果保存到临时表
CREATE TABLE #tmp
(
name VARCHAR(250)
,[type] VARCHAR(250)
,updated CHAR(2)
,selected CHAR(3)
,[column] VARCHAR(250)
)
INSERT #tmp
EXEC sp_depends @objname = N'yoursp'
SELECT name FROM #tmp
答案 1 :(得分:2)
最简单的方法是创建一个像this回答中提到的sqluser这样的临时表。
CREATE TABLE #temp
(NAME VARCHAR(250)
, [type] VARCHAR(250)
, updated CHAR(2)
, selected CHAR(3)
, [column] VARCHAR(250))
-- insert the data from procedure's rresult into temporary table
INSERT #temp
EXEC sp_depends @objname = N'Samplesp1'
SELECT NAME
FROM #temp t
--Filter condition
WHERE t.type = 'user table'
drop TABLE #temp
本文 - How to Share Data between Stored Procedures显示了适合您的方案的各种其他方法。
我个人最喜欢的所有选项都使用OPENQUERY
:
SELECT * FROM
OPENQUERY(YOURSERVERNAME, 'EXEC MyProc @parameters')
WHERE somefield = anyvalue
在SO中已经有一个已经很好回答的问题 - SQL Server - SELECT FROM stored procedure。查看答案也会给你一些更好的选择。