0

多くの組み合わせを試していますが、常にエラーが発生しています。(ハードコードで変数を置き換える選択/挿入は、プロシージャの外で機能しています)

基本的に、私のプロシージャは、日付変数を文字列として受け取り、結果としてテーブルを返し、それを他の既存のテーブルに挿入する動的選択を行う必要があります。動的クエリの一部を削除するコード (大きすぎる):

alter procedure [dbo].[SavePosition]
(@Refdate as varchar(15) =null)
as
begin
set NOCOUNT on
declare @YdDate as varchar(15)
declare @SQL AS NVARCHAR(max)

--To get prior date from @refdate(standalone select working well):
set @YdDate = (SELECT distinct max(TradeDate) from Trades where TradeDate < @Refdate)

--Sample of the query:
set @SQL='Select  ('''+ @Refdate +''') AS Refdate, @('''+ @YdDate +''') as Product from...join..having...group...';

INSERT INTO [dbo].[Position]([Refdate],[Product],...)
EXEC sp_executesql @sql
end
go

以下を実行すると、「マルチパート識別子「....」をバインドできませんでした」というメッセージがたくさん表示されます。

exec [dbo].[SavePosition] '2014-12-10'
4

1 に答える 1