none
Одинаковый скрипт в sql2005 и sql2008r2 RRS feed

  • Общие обсуждения

  • Привет, бэкаплю базу скриптом (План обслуживания-выполнить инструкцию T-Sql), на предприятии два сервера БД один на Sql 2005 Standard x86 второй на SQL 2008 R2 x64 standard. В 2008 скуле данный скрипт выполняется без проблем:

    declare @dir_name as date;
    declare @current_date as date = GETDATE();
    declare @temp_dir_name as varchar(200);
    declare @sql as varchar(200);
    declare @expire_date as date = GETDATE() - 30;
    declare @table as table(SUBDIR varchar(100));
    declare @last_day as int;

    --deny execute on master.dbo.xp_cmdshell to public

    insert @table exec master.dbo.xp_subdirs N'\\pdc\g$\sql_base_backup\buh82_arc\';
    DECLARE next_item CURSOR FOR select * from @table
    open next_item;
    WHILE (@@FETCH_STATUS = 0)
    begin
    FETCH NEXT FROM next_item into @temp_dir_name;
    set @dir_name = CONVERT(varchar, @temp_dir_name, 105);
    set @last_day = day(DATEADD (day,1,@dir_name));
    IF (@last_day <> 1) AND (@dir_name < @expire_date)
    begin
    set @sql = N'rd /s /q \\pdc\g$\sql_base_backup\buh82_arc\' + CONVERT(varchar, @dir_name, 105);
    exec master.dbo.xp_cmdshell @sql;
    end
    end
    CLOSE next_item;
    DEALLOCATE next_item;


    В 2005 этот скрипт не выполняется, при чем на что-то конкретное не ругается, просто говорит, что завершено с ошибкой...
    Помогите разобраться пожалуйста.
    19 марта 2013 г. 19:12

Все ответы

  • Нашел, что в sql 2005 нет типа date, есть datetime замена date на datetime результата не дала..
    19 марта 2013 г. 20:21
  • Нашел, что в sql 2005 нет типа date, есть datetime замена date на datetime результата не дала..

    вы удивитесь, но в 2005-ом ещё много чего нет!

    например присвоение переменной значения на этапе объявления

    --2008 and UP
    declare @current_date as date = GETDATE();

    ==>

    --2005
    declare @current_date datetime;
    set @current_date = GETDATE();

    Кстати это всё описано в официальной документации

    http://www.t-sql.ru

    20 марта 2013 г. 2:39
    Отвечающий
  • исправил текст скрипта, запустил отладку в студии, убрал присвоения в объявлении, отладчик не ругнулся, ставлю выполняться план обслуживания, все равно возвращает ошибку...
    20 марта 2013 г. 4:31
  • все равно возвращает ошибку...

    и текст ошибки на столько "неприличный", что вы его не можете сдесь опубликовать?

    http://www.t-sql.ru

    22 марта 2013 г. 6:25
    Отвечающий
  • Здравствуйте mutare,

    Вам удалось решить данную проблему? 

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

    Если нет, то напишите, текст ошибки, чтобы мы могли Вам помочь.

    25 марта 2013 г. 7:20
    Модератор
  • В вашей теме отсутствует активность в течение последних  дней. При отсутствии каких-либо действий в течение 2 последующих дней, тема будет переведена в разряд обсуждений. Вы можете возобновить дискуссию, просто оставив сообщение в данной теме.

    1 апреля 2013 г. 7:25
    Модератор