所有这些都可以在一个功能中完成吗?

时间:2013-09-17 20:47:41

标签: sql-server-2008 tsql function excel-2010

我还没有办法做到这一点。 我有一个大的SQL语句执行以下操作:

  1. 检查两个临时表,如果找到则删除它们
  2. 声明局部变量
  3. 设置局部变量
  4. 运行SQL语句1,插入#tmp1(临时表)
  5. 运行SQL语句2,插入#tmp2(临时表)
  6. 运行SQL语句3,从#tmp1和#temp2(临时表)中选择并返回数据结果
  7. 在查询窗口中运行它可以正常工作,但我想制作一个函数(或其他东西)来做同样的事情。

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

1 个答案:

答案 0 :(得分: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
  

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