0

我还没有找到一种方法来做到这一点。我有一个大型 SQL 语句,它执行以下操作:

  1. 检查两个临时表,如果找到则删除它们
  2. 声明局部变量
  3. 设置局部变量
  4. 运行插入#tmp1(临时表)的SQL statement1
  5. 运行插入#tmp2(临时表)的SQL statement2
  6. 运行从#tmp1 和#temp2(临时表)中选择并返回数据透视结果的SQL statement3

在查询窗口中运行它可以正常工作,但我想让一个函数(或其他东西)做同样的事情。

EDIT1:我似乎能够从 excel 调用一个表函数并返回这些结果,但我不能从 excel 调用一个存储的过程,我得到一个错误。表函数的问题是我无法删除(删除)表。

4

1 回答 1

1
CREATE PROCEDURE dbo.OneFunction AS

--Checks for two temp tables, if found delete them
IF OBJECT_ID('#Frob') IS NOT NULL  
    DROP #Frob
IF OBJECT_ID('#Grob') IS NOT NULL
    DROP #Grob

--Declare local variables
DECLARE @some int;
DECLARE @localVariables nvarchar(max);

--Sets local variables
SET @some = 69;
SET @localVariables = N'Tĥḗ qᴜįċᴋ ᶀʀᴏᴡɴ ƒᴏx ᴊᴜᴍᴘěɖ ᴏᴠḝʀ'  

--runs SQL statement1 which inserts into #tmp1 (temp table)
INSERT INTO #tep1
SELECT 'Hi'

--runs SQL statement2 which inserts into #tmp2 (temp table)
INSERT INTO #tmp2
SELECT 'Low'

--runs SQL statement3 which selects from #tmp1 and #temp2 (temp table) and returns pivot results
SELECT *
FROM #tmp1
   FULL OUTER JOIN #tmp2 ON 1=1
PIVOT BY SOMEONE WHO KNOWS THE INSANE PIVOT SYNTAX

注意:任何代码都会发布到公共领域。无需归属。

于 2013-09-17T21:04:56.680 回答