【发布时间】:2016-12-27 22:27:52
【问题描述】:
我有一个问题,我需要知道作为参数传递给另一个存储过程的任何存储过程的列。但无论如何我都没有得到任何结果。
ALTER PROCEDURE getColumnsTable
(@tableColumnsNames nvarchar(45))
AS
BEGIN
DECLARE @TSQL varchar(100)
SET @TSQL = 'select * into #TablaTemporal FROM OPENQUERY( MyServerConnection, ''EXEC '+ @tableColumnsNames +''');'
EXEC (@TSQL)
SELECT COLUMN_NAME
FROM tempdb.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME like '%#TablaTemporal%'
IF EXISTS (SELECT * FROM tempdb.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME like '%#TablaTemporal%' )
BEGIN
DROP TABLE #TablaTemporal
END
END
这是我要阅读的存储过程
ALTER PROCEDURE MyProcTest
AS
BEGIN
SET NOCOUNT ON;
SELECT
c.idCliente, f.idFactura
FROM
Cliente c
INNER JOIN
Factura f ON (c.idCliente = f.idCliente)
WHERE
1 = 2
END
我想获得一个
COLUMN_NAME
idCliente
idFactura
从一个简单的
EXEC getColumnsTable @tableColumnsNames = N'MyProcTest'
这可能吗?我还没有找到解决办法。
【问题讨论】:
-
赞成使用es.stackoverflow.com si quiere usar espanol。
-
英文!!谢谢!!
标签: sql-server stored-procedures calculated-columns openquery