none
Не могу создать хранимую процедуру в SQL express 2005 ПОМОГИТЕ, пожалуйста, СРОЧНО RRS feed

  • Вопрос

  • Извините за глупые вопросы. Вот уже несколько дней бьюсь. Каким-то чудом создалась одна процедура. И все. В понедельник нужно сдавать работу. Хочется выть. Весь мой прошлый 30-летний опыт не может помочь. Помогите, пожалуйста ВЫ.

    Создаю хранимые процедуры в SQL Server Management Studio Express.

    В книге Майкла Гандерлой SQL Server 2005 написано, что появляется окошко с полями, в которые надо заносить информацию по частям.

    У меня при после выбора в Object Explorer Stored procedures нажатия правой кнопкой мыши и выбора New stored procedure появляется шаблон тела.

    Пробовал разные варианты заполнения. Сейчас текст идентичен случайно созданной (и работающей) процедуре:

    USE [Delo]

    GO

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

    -- =============================================

    -- Author:        Âîëîäèí

    -- Create date: 26.01.2013

    -- Description:   Âñòàâêà íîâîãî ïèñüìà

    -- =============================================

    ALTER PROCEDURE [dbo].[InsertInpLetter]

          -- Add the parameters for the stored procedure here

          @IdPerson int,

          @IdOrg int,

          @IdLetter int OUTPUT

    AS

    BEGIN

          INSERT INTO InpLetter

          (IdPerson,IdOrg,Date)

          VALUES (@IdPerson,@IdOrg,GETDATE());

          SET @IdLetter=@@IDENTITY

    END

    Нажимаю значок сохранить как. Показывается папка Project.

    Сохраняю под именем InsertInpLetter (не совпадает с именем существующей процедуры)

    Файл в этой папке появляетя.

    В в Object Explorer в Stored procedures новая процедура не появляется. Никакой диагностики не получаю.

    Программное обращение из моей программы дает диагностику – хранимой процедуры нет.

    Что я делаю не так? И как правильно.


    • Изменено Miklv 26 января 2013 г. 6:05
    26 января 2013 г. 5:53

Ответы

  • Извините за беспокойство, но написание вопроса к ВАМ, помогает решить вопрос самому.

    Для того, чтобы появилась хранимая процедура недостаточно просто сохранить текст в проекте. Надо этот текст запустить как запрос.

    Если запрос без ошибок, то появляется хранимая процедура. Текст приведенный в вопросе, скопированный с работающей процедуре непригоден для создания новой процедуры. Для новой процедуры должно быть вместо ALTER PROCEDURE  CREATE PROCEDURE, как и было у меня в первоначальной версии. Это я понял, когда неправильный запрос на выполнение. Мне стало стыдно и я хотел удалить вопрос.

    Потом я вспомнил про Максвела, который 6 лет делал примерно один и тот же опыт - вставлял магнит в катушку и не мог открыть закон электомагнитной индукции потому, что прибор, измеряющий ток находился в другой комнате.

    Не моя вина, что я неделю не мог догадаться, что сохранения файла недостаточно для создания хранимой процедуры. Разроботчик шаблона могбы поместить в коментарий соответствующую подсказку.

    Надеюсь мой опыт кому-то поможет.

    У нас на форуме есть прекрасные обзоры, как что-то сделать содержательно. МОжет быть сделать обзор Глупых проблем типа тех, с которыми в основном сталкиваюсь я


    Ставлю пометку об ответе, чтобы занятые люди не заморачивались
    • Помечено в качестве ответа Miklv 26 января 2013 г. 7:01
    • Изменено Miklv 26 января 2013 г. 7:03
    26 января 2013 г. 7:01
  • Хорошо, что вы разобрались самостоятельно. Постарайтесь поменьше использовать разнообразные визарды и шаблоны. Вместо @@identity лучше использовать scope_identity().
    • Помечено в качестве ответа Miklv 6 февраля 2013 г. 18:56
    26 января 2013 г. 11:40

Все ответы

  • Извините за беспокойство, но написание вопроса к ВАМ, помогает решить вопрос самому.

    Для того, чтобы появилась хранимая процедура недостаточно просто сохранить текст в проекте. Надо этот текст запустить как запрос.

    Если запрос без ошибок, то появляется хранимая процедура. Текст приведенный в вопросе, скопированный с работающей процедуре непригоден для создания новой процедуры. Для новой процедуры должно быть вместо ALTER PROCEDURE  CREATE PROCEDURE, как и было у меня в первоначальной версии. Это я понял, когда неправильный запрос на выполнение. Мне стало стыдно и я хотел удалить вопрос.

    Потом я вспомнил про Максвела, который 6 лет делал примерно один и тот же опыт - вставлял магнит в катушку и не мог открыть закон электомагнитной индукции потому, что прибор, измеряющий ток находился в другой комнате.

    Не моя вина, что я неделю не мог догадаться, что сохранения файла недостаточно для создания хранимой процедуры. Разроботчик шаблона могбы поместить в коментарий соответствующую подсказку.

    Надеюсь мой опыт кому-то поможет.

    У нас на форуме есть прекрасные обзоры, как что-то сделать содержательно. МОжет быть сделать обзор Глупых проблем типа тех, с которыми в основном сталкиваюсь я


    Ставлю пометку об ответе, чтобы занятые люди не заморачивались
    • Помечено в качестве ответа Miklv 26 января 2013 г. 7:01
    • Изменено Miklv 26 января 2013 г. 7:03
    26 января 2013 г. 7:01
  • Хорошо, что вы разобрались самостоятельно. Постарайтесь поменьше использовать разнообразные визарды и шаблоны. Вместо @@identity лучше использовать scope_identity().
    • Помечено в качестве ответа Miklv 6 февраля 2013 г. 18:56
    26 января 2013 г. 11:40