如何多次获得温度 Table 到 运行
How To Get Temp Table to Run Multiple Time
我正在使用 MS SQL 服务器。我目前正在研究拉动人数的查询。在此过程中,我正在创建临时 tables,但注意到我只能 运行 查询一次。如果我在进行更改后再次尝试 运行ning,它会在数据库中为我提供 'There is already an object named '#Test1'。'
我的 SQL 看起来像这样:
SET NOCOUNT ON SET ANSI_WARNINGS OFF
IF OBJECT_ID('Tempdb..#Headcount') IS NOT NULL
Drop Table #Test1
Select Coalesce(Enddate,GETDATE()) as EndDate1,FirstName,LastName,EmployeeID,CostCenter,JobCode, CompanyCode
Into #Test1
from EmployeeDM.dbo.vEmployeeJobReporting EJ
--Group By FirstName,LastName,EmployeeID,CostCenter
Order by 1
IF OBJECT_ID('Tempdb..#Headcount') IS NOT NULL
Drop Table #Final1
Select max(EndDate1) as Date1, FirstName,LastName,EmployeeID,CostCenter,JobCode, CompanyCode
Into #Final1
From #Test1
Group by FirstName,LastName,EmployeeID,CostCenter,JobCode, CompanyCode
Order by 1
SELECT F.CostCenter,F.FirstName,F.LastName, F.Date1, F.CompanyCode, F.JobCode,F.EmployeeID,(t3.Day_of_Month-t2.Day_of_Month+1)*1.0/t4.Day_of_Month as Headcount,
Case
最后一个 Select 语句是非临时 table 查询的开始。我可以在代码中做什么/写什么才能连续 运行 多次?另外,我收到的错误:
消息 2714,级别 16,状态 6,第 4 行
数据库中已经有一个名为“#Test1”的对象。
谢谢!
当您编写 ...INTO #test1 时,您正在根据 select 语句的内容创建 table。您需要 1) 在查询末尾删除 temp tables,2) 检查它们是否存在于前端,如果存在则删除,3) 两者。
您已经在检查#headcount,但在开头删除了#final 和#test1。我没看到你在哪里声明#headcount 为 table?
我正在使用 MS SQL 服务器。我目前正在研究拉动人数的查询。在此过程中,我正在创建临时 tables,但注意到我只能 运行 查询一次。如果我在进行更改后再次尝试 运行ning,它会在数据库中为我提供 'There is already an object named '#Test1'。'
我的 SQL 看起来像这样:
SET NOCOUNT ON SET ANSI_WARNINGS OFF
IF OBJECT_ID('Tempdb..#Headcount') IS NOT NULL
Drop Table #Test1
Select Coalesce(Enddate,GETDATE()) as EndDate1,FirstName,LastName,EmployeeID,CostCenter,JobCode, CompanyCode
Into #Test1
from EmployeeDM.dbo.vEmployeeJobReporting EJ
--Group By FirstName,LastName,EmployeeID,CostCenter
Order by 1
IF OBJECT_ID('Tempdb..#Headcount') IS NOT NULL
Drop Table #Final1
Select max(EndDate1) as Date1, FirstName,LastName,EmployeeID,CostCenter,JobCode, CompanyCode
Into #Final1
From #Test1
Group by FirstName,LastName,EmployeeID,CostCenter,JobCode, CompanyCode
Order by 1
SELECT F.CostCenter,F.FirstName,F.LastName, F.Date1, F.CompanyCode, F.JobCode,F.EmployeeID,(t3.Day_of_Month-t2.Day_of_Month+1)*1.0/t4.Day_of_Month as Headcount,
Case
最后一个 Select 语句是非临时 table 查询的开始。我可以在代码中做什么/写什么才能连续 运行 多次?另外,我收到的错误:
消息 2714,级别 16,状态 6,第 4 行 数据库中已经有一个名为“#Test1”的对象。
谢谢!
当您编写 ...INTO #test1 时,您正在根据 select 语句的内容创建 table。您需要 1) 在查询末尾删除 temp tables,2) 检查它们是否存在于前端,如果存在则删除,3) 两者。
您已经在检查#headcount,但在开头删除了#final 和#test1。我没看到你在哪里声明#headcount 为 table?