Динамическая вставка SQL в возвращает «неверное имя столбца» - PullRequest
0 голосов
/ 17 февраля 2012

Я пробую свою первую динамическую хранимую процедуру sql. Мне нужно добавить одни и те же записи в несколько таблиц с одинаковыми именами столбцов. То, что у меня есть, компилируется, но когда он запускается, я получаю 'недопустимое имя столбца' TradeDate Сначала спрок драйвера, затем спрок, содержащий динамический оператор. Если бы кто-нибудь мог помочь, это было бы здорово ..

ALTER PROCEDURE dbo.StoredProcedure2

AS

DECLARE @tableName varchar(120)
SET @tableName = 'tblDailyATR'
EXEC sprocAddDatesAndSymbolsToAggregatedStudy @tableName

RETURN

ALTER PROCEDURE dbo.sprocAddDatesAndSymbolsToAggregatedStudy
    @table varchar(120)

AS

DECLARE @tableName varchar(120)
SET @tableName = @table

EXEC(
'INSERT INTO ' + @tableName + '(Symbol, TradeDate)
SELECT Symbol, TradingDate
FROM (SELECT tblSymbolsMain.Symbol, tblTradingDays.TradingDate
      FROM tblSymbolsMain CROSS JOIN tblTradingDays
      WHERE (tblTradingDays.TradingDate <= dbo.NextAvailableDataDownloadDate())) AS T1
      WHERE (NOT EXISTS (SELECT TradeDate, Symbol
      FROM' + @tableName +
      ' WHERE (TradeDate = T1.TradingDate) AND (Symbol = T1.Symbol)))')

RETURN

1 Ответ

2 голосов
/ 17 февраля 2012

Вам не хватает пробела после «FROM» в этой строке:

FROM' + @tableName +

Должно быть

FROM ' + @tableName +

В противном случае он попытается запустить SELECT FROMTABLE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...