Простое заявление в хранимой процедуре
Я никоим образом не являюсь администратором базы данных и пытаюсь написать то, что я воспринимаю как просто хранимую процедуру. Я передаю некоторые параметры со значением 0 или 1, в зависимости от того, что это значение параметра Я хочу создать временную таблицу, а затем выгрузить данные. В принципе, мой код выглядит следующим образом.
ALTER PROCEDURE [dbo].[cfn_ReportP360_Calendar_MV_and_Performance] @IUID int = NULL , @USERTYPE varchar(1) = 'R' , @RepID varchar(20) = null -- this can be vchplanid or vchhhplanid depENDs ON the @reporttype , @iWorkListID int = 0 -- this is the P360 Group id , @Reporttype varchar(1) = 'A' -- 'A' = acct by acct, 'H' = Household , @debug tinyint = 0 , @showdata tinyint = 1 -- 1 = show data, 0 = show year AS SET NOCOUNT ON IF OBJECT_ID('tempdb.dbo.#tempFinal') IS NOT NULL DROP TABLE dbo.#tempFinal IF @showdata = 0 Begin CREATE table dbo.#tempFinal( YEAR1PERF text, YEAR2PERF text, YEAR3PERF text, YEAR4PERF text, YEAR5PERF text, YEAR6PERF text) INSERT into dbo.#tempFinal SELECT CONVERT(VARCHAR(8), GETDATE(), 1), '12/31/2012', '12/31/2011', '12/31/2010', '12/31/2009', '12/31/2008' END IF @showdata = 1 BEGIN CREATE table dbo.#tempFinal( HHLEVEL_INDICATOR text, IPPSACCOUNTID text, ICFNACCOUNTID text, VCHACCOUNTNUMBER text, VCHACCOUNTNAME text, VCHPLANID text, IHHID text, VCHHHNAME text, YEAR1PERF text, YEAR2PERF text, YEAR3PERF text, YEAR4PERF text, YEAR5PERF text, YEAR6PERF text) Insert into dbo.#tempFinal SELECT HHLEVEL_INDICATOR,IPPSACCOUNTID,ICFNACCOUNTID,VCHACCOUNTNUMBER,VCHACCOUNTNAME,VCHPLANID,IHHID,VCHHHNAME,YEAR1PERF,YEAR2PERF,YEAR3PERF,YEAR4PERF,YEAR5PERF,YEAR6PERF from dbo.tbl_cfn_Calendar_Performance END SELECT * from dbo.#tempFinal IF OBJECT_ID('tempdb.dbo.#tempFinal') IS NOT NULL DROP TABLE dbo.#tempFinal
Я чувствую, что это должно быть хорошо, но каждый раз, когда я пытаюсь запустить его, я получаю ошибку; Msg 2714, уровень 16, состояние 1, процедура cfn_ReportP360_Calendar_MV_and_Performance, строка 47
В базе данных уже есть объект с именем #tempFinal.
- Найти имена столбцов таблицы Temp
- Отображение параметров с помощью выполнения SQL-задачи
- Как выбрать предыдущую дату из таблицы temp #date в sql?
- SQL получает разделенные запятыми значения столбца из XML
- Почему SQL вызывает ошибку, если у меня есть юридический код, который никогда не будет достигнут?
кроме строки 47, ссылка на эту временную таблицу вообще отсутствует, может быть, потому что комментарии игнорируются, и у меня есть целая куча комментариев над кодом, который я вставил, но не проверяет ли я таблицу и не отбрасываю ее на конец SPROC устранить его? Я не уверен, куда идти, и любая помощь будет большой. Заранее благодарю вас, NickG
- Azure SQL Data Warehouse - медленный LEFT JOIN с временной таблицей
- SQL Server показывает «Недопустимое имя объекта« #temp »при работе с временной таблицей
- Скорость вставки Временная таблица против обычной таблицы
- TSQL выбирает таблицу Temp из динамического sql
- Какие более эффективные, CTE или временные таблицы?
- Вставка нескольких значений во временную таблицу, SQL Server
- Как использовать временную таблицу SQL Server #tblTmpYaks в Microsoft Access VBA?
- В MS SQL Server 2005, что происходит, когда к временной таблице обращаются различные исполнения одного и того же SP?
Во-первых, здесь я не вижу необходимости создавать временную таблицу, вы можете напрямую запускать свои операторы select и получать результат. Я не уверен, что вы выполняете какие-либо операции над данными в таблице temp, иначе вам просто не нужны.
переключатель
IF OBJECT_ID('tempdb.dbo.#tempFinal') IS NOT NULL
с
IF OBJECT_ID('tempdb..dbo.#tempFinal') IS NOT NULL