你好在存儲過程中,我創建一個臨時表填充選擇至極執行函數返回日期重現。存儲過程臨時表與參數
我的臨時表的創建如下:
BEGIN
insert into #tmp_recu
SELECT * FROM dbo.CrontabSchedule('0 0 * * *', '2017-2-1', '2017-2-28')
END
創建該臨時表之後,我用這個臨時表執行下面的查詢:
Select * from mission
Cross Join #temp_recu
問題是我'我想在我的臨時表中創建'0 0 * * *'由任務表中的字段(字段名爲recurrence),所以我怎麼能這樣做呢?
謝謝!
編輯
其實,在我的詢問,我想調用的函數「CrontabSchedule」,並把在參數字段從「使命」表是這樣的:
select * from mission m
cross join select * from dbo.CronTabSchedule(mission.reccurence,'2017-1-1','2017-1-31')
它的工作原理時,我調用的函數這樣
select * from dbo.CronTabSchedule('0 0 * * *','2017-1-1','2017-1-31')
但是,當我替換 '0 0 * * *' 由 'Mission.recurrence'(其包含的每個任務的循環模式)中,i具有一個錯誤:
無法綁定多部分標識符「Mission.recurrence」。
CrontabSchedule代碼:
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER FUNCTION [dbo].[CrontabSchedule](@Expression [nvarchar](100), @Start[datetime], @End [datetime])
RETURNS TABLE (
[Occurrence] [datetime] NULL
) WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [NCrontabSQL].[NContab.SQL.SqlCrontab].[GetOccurrences]
該函數返回一個表名爲 'Occurence' 一列包含日期列表。
只是不''選擇*'並只選擇你想要的字段嗎?或者我錯過了什麼? –
你在尋找一個表值函數嗎? –
請參閱以下鏈接以瞭解如何提出完美問題:https://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/ – TheGameiswar