Разделы
Публикации
Популярные
Новые
Главная » Оптимизация производительности transact

1 ... 43 44 45 46 47 48 49 ... 55

iiXLC msGP .sp add jotschcpGis gjcb /ia;rie = la-.yHdcK.ip, jrane = ScneduledBacKup. !?f!eq tyDe = 4, -- ежедневно (afreq interval I. Pact;ve 5tart t;me - I016C0

PIlCI.AkF Dataoaseb CURSGR FOR SflFC САГА1СС МАН£ FROM INfORMATlOMJCHEMA.SCHEMAA

WHERE CAEALOG NAHE <> te.Tiodb мрипускае, сясгемнь.е базы ORDER BY CATALOG NAME OPEN Catebases

FEICH Datauases INIO Pabname SET gste? id-C

WHILE (casaEETCHJTATUS-O) BEGIN

IF NOT EX1STS(SELECT * FROM Mbter. . iysdevices WHERF name Pdbname+back) BEGIN

-- Создать ycipoHCiBD резервного копирования

PRINT Adding the data backup device for +@dbname

SET C<iexecstr=EXEC sp addumpGevice disk . +iSdbna,t,e+bacK < ,

@roctpath+ \backup\ +PdbnaiTie+back .dmp

EXECCPexecstr)

- Добавить эта,; задачи резервного копирования

PRINT Adding the database backup job step for +gdbncime

SET gexecstr=EXEC msdb. .sp addJob5tep @job name = DailyBackup,

&step name + Backup of database: +@dbname+ .

(asubsyste.m TSQL .

(5corTi,Ticrd = BACKUP DATABASE tiadbname TO 4adbname+back .

@on success action=3

EXECdSexecstr)

SET @steD io=?step idi-I

-- Добавить этап для копирования журнапа

IF ((adbnameo master) AND (OATABASEPROFERTfiPdbname. IsiruncLog)0j BEGIN

IF NOT EXISTS(SELECT * FROM master..sysdevices WHERE name = (adbname+back) BEGIN -- Создать ycTpoiiCTBO резервного копирования журнала PRINT Adding the log backup device for +&dbr,ame SET @execstr=EXEC sp addumpdevice disk . +gdbnaine+logback + . +(arootpa th \bdckup\ +@dbname+ 1 ogback. dmp tXEC(@execstr)

PRINT Adding the log backup job step for +C=dbname

SET gexecstr=EXEC msdb .sp addjobstep @job name = DailyBackup

!Sstep name - + Backuo of log for database: +@dDnanie+ .

subsystem = TSQL .

gcommand =- BACKUP LOG №name+ TO +@dbname+]ogbaCK .

(5on success action=3

EXECfPexecstr)

SET (astep id=@step id+I



470 Глава 17, Административный Trar

inCh DaLacases INTO gaonarK

ClOSI DaiaDases DEALLOCATE DataDases

HacTpciTb Г1сследн;1й этап дпя завершения вь;По,;не.-!ия задачи EXEC nscb. .sD upc;ate jobstep Ojob nanie=Da :iyBackup, 9step id4 step ic, Oon success actionl

-- Связаь задачу с сервером задач

EXEC msCD.. sp ada jobserver @job naTie=DailyBackup

PRINT CHARCOi+Successfully iniLialized server

(результаты сокращены)

Setting template database options Checkpointing database that vjas changed.

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Checkpointing database that was changed,

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Checkpointing database that uas changed.

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Checkpointing database that vjas changed.

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Adding template data types

Type has been dropped.

Type added.

Creating backup devices and job steps for every database except tempdb Setting up the job operator Adding the backup job Scheduling the job

Adding the database backup job step for CM

Adding the log backup job step for CM

Adding the database backup job step for master



Айа::-5 1;;с Ccracase idc-.jj joo s:ei; с -уса] Aaaing the aatahase oackup joP step for msJo ACG-ng tne catahase hac:<;c job stec or Norfi.-rnc Adding the dataoase bac-vip job step fcr Mc-twi. o2 Adding tne database backup job step *0- p-\ Adding the database bdc-,p job step for PO Adding tne database Ьзскпр job step rc pubs Aacng the database backup job step for VCDE Successfully initialized sc-ver

Этот сценарии выпол1И1ет несколько интересных онерации. Сначала он конфигурирует ба.чу данных model нуте.м онисания 1иаблонного набора параметров и типов данных. В дальнейшем эти пара.метры исиолызуются при создании новых баз данных. Они также применяются при nepecrpoiiKe базы tempdb каждый раз, когда сервер иерезапускается. Напри.мер, можно включить настройку select into/bulk copy в базе model, если вы хотите включить се в базе tempdb при запуске сервера. В .месте с те.м специальпая процедура автозапуска предпочтительнее, поскольку оиа устраняет риск случайного включения настройки select /into bulk copy в других, вновь со.здавае.мых базах данных.

Зате.м сценарий испочьзует 1цл)цедуру sp getSQLregistry для поиска каталога установки SQL Server и при необходи.мости создает устройства резервного копирования. Далее создается задача службы SQL Server Agent для резервного ко-нировання каждоГ! базы данных (и, если иужио, ее журнала транзакций), а также соответствующий оператор и расинсаиие, по которому задача запускается.

Каждая задача службы SQL Server Agent сосгоит из этапов. ПростейшсШ 311дача может содержать всего один этан, в более сложных задачах их .vnroro. В данном примере создаем отдельный этап для резервного копирования каждой базы и каждого журнала транзакцпГг В качестве значения ио умолчанию пара.метра on success action выводится .3, что является ука.заиие.м службе SQL Server Agent перейти к вьпюлнен1по следующего этана, если текуиий! этап завершен успешно. Для заключительного этапа гадачи этого пе делается, поскольку следующи!! этап отсутствует. Поэтому сценарий! включает вызо!) процедуры sp updateJobstep, которая предписывает заключ!!тельнол!у эта!!у просто за!!ер!11!!ть работу з;шач!!, если са.м этап успешно завер!де!!.

Обратите вн!!.\!ан!!е !!а вызов !!ро!!едурь! sp addJobserver. Она связывает В!!овь создаину!о задачу с локаль!!Ь!.м серверо.ч! задач. Есл!1 этого не г!роизо1 !дет, задача 1!!!Когда !!е запуст!1тся. МоЖ!!0 пред!1олож!1гь, что !!ростое создан!!е задач!! с !!0.\!ощью процедурь! sp addJob долж!!0 уста!!ав.т!!вать эту связь, однако это !!е так. Гибкость С1!сте.\!Ы, заключаю!цаяся в разделен!!!! задач !f серверов задач, позволяет !!ла!!!!ровагь запуск задач !!а дру!Т!х серверах - такая воз.\!ож!!ость че-резвь!ча1и!0 важ!!а для aд^!и^!!!cтpaтopoв, зан!!.У!а!0Щ!!Хся поддержкой М!!ого-серверн1>!х С1!стем. Тем не ,\!е!гее за П!бкость !!р1!Ход!1тся !!латить - следует



472 Глава 17, Административный Transact-SQL

и(),\птть о пе()0,\()Дпмо(ти связьпшть задачи с cejinejia.Mn задач, когда вы планируете задачи с homouujK) Transact-SQL, Это лншнн11 apry,\iejrr в но.тьзу применения гра(1)ическнх средств ад\пнп!Стри1К)вання: если вв! используете Enterprise Manager для плапнроватшя задач, нам не нужно беспокоиться о подобиьгх дета-.тя.\ - по умолчанию он платтрует задачи на лока;И)но,\1 сервере.

Процедура sp readtextfile

Текстовые tj)aib !b! очень широко раснрост1)аиеиы в снсте,\и1(),м ад.чпинклрнрова-ihhi, и нет ничего удивительного в том, что ад,\ннпи:т1)атора,м часто нужно иметь к ним доступ через SQL Server, Об1)аб()тка результата вьни)лиснпя команд оне-paunoHHoii системы и консольных утилит cejBcpa, разбор протокола оин!бок, загрузка фа1!лов спенариев SQL - вот лишь несколько прн.ме1)ов из .мгюжества CHTyauHii, в которых ад.\пни!СТ1)аторы и.меют дело с текстовы.чш файла.чиь Далее нредсгавлсна ироцелу1)а, которая читает текстошя!! файл и возвращает его в виде набора данных. Используя операто]) INSERT...EXEC, можно поместить возвращае-Mbiii процедурой результат в таблицу для последующе! ! обработки или просто вернуть его в виде собственного набора данных, как это показано в иривод!ь\и)11 процедуре sp generate scripL Расс.\и)три.м исходиьп! код процедуры sp readtextfile: USE master

IF OBJECT ]DCsp reac!textfile) !S NOT NULL CROP P.ROC sp .-oac:textfile

CREATE PROC sp readtextfi le Ptextilename sysram.e /*

Обьект: sp readtextf 1 le

Описаняе: Считывает содержимое тексгового файла в набор допных SOL

Синтаксис: sc readtextfile (cte,<tiileiame=HM файла

Возврашаемое значение: (нет)

Автор: Ken Henderson. Email: khenOKhen.ccm

Версия: 7.0

Пример использования: sp readLextfile D:\MSSQL7\L0GS\errcrlog

Дата создания: 1996-05-01. Дата лсслед.чего изменения: 1999-06-14.

/ AS

SET NOCOUNT ON

IF ((5textfilena,Tie=71) GOTO Help CREATE TABLE #lines (line varchar(8000)) EXECCBULK LNSERT #lines FROM +(atextf i lename-t ) SELECT * FROM #lines CROP TABIE #nnes



RbfURN О Help;

tXEC sp u5age (aobjectrid,Tie=bp reaciit.-xtf iе'. edesc-Reacs the contents к' a text ile mt;; a bC: revjli se;. @paranoters=@textfilenarriename o file to read, 0author=f(en Hendcscn, (3eiT;a;><hen?<hen.co;n. eversion=7 ,(3revision=0,

Pdatecreated 19960501, Pdatelastchanced=195906:4, (aexainpie=sp readtextfile D;\MSS0!.7\l.0GS\errorlog RtTUR.N -1

EXEC sp.reedtextflle c;\nssq7\logVerorlog,sav

(результаты сокращены)

line

1999-07-06 09;10;4i,l kernel Microsoft SQL Server 7.09 - 7,00.699 (Intel XB6j May 21 1999 14;08;18

Copyright (c) 1988-1998 Microsoft Co-poratior Desktop Edition on windows NT 4,0 (Build 1381; Service Pack 4j 1999-07-06 09;10;4l,25 kernel Copyright (C) 1988-1997 Microsoft Corporation, 1999-07-06 09;10;4l,25 kernel Ail rights reserved, 1999-07-06 09;]0;41,25 kerne Logging SOL Server .messages in file

d:\MSSQL7\log\ERRORL0G, 1999-07-06 09;10;4I,56 kernel mitconfg; Nunben c* user connections li.iiited

to 32767

1999-07-06 09;10;4l,56 Kernel SOl Server is starting at priority class

r.ori] (i CPU detected), 1999-07-06 09;10;41,70 kernel User Mode Schedule- configu.-ed fo- thread

process ing

1999-07-06 09:10;43,34 server Directory Size; 16215

1999-07-06 09;1C;43,45 spidl Using dynamic lock allocation. 1500] Lock

Blocks, [1000] Lock Owner Blocks 1999-07-06 09;10;43,49 spiol Starting up database master. 1999-07-06 09;10;43,49 spidl Opening file d;\MSS0L7\data\master,mdf. 1999-07-06 09;10;43,73 spidl Opening file d;\MSSQL7\dataM]iastlog-lGf, 1999-07-06 C9;10;44.23 spidl Loading SQI Servers Unicode collation, 1999-07-06 09;iO;44,2S spidl Loading SOL Servers non-Unicode sort order

and character set,

1999-07-06 09;10;45 36 spidl 107 transactions rolled forward in database

master- (1),

1999-07-06 09;10;45,37 spidl 0 transactions rolled back in database

master (1),

1999-07-06 09 1999-07-06 09 1999-07-06 09 1999-07-06 09 1999-07-06 09 1999-07-06 09 1999-07-06 09 1999-07-06 09

10;51,28 spidl Recove,7 camplete,

10;51.28 spidl SQL Servers Unicode collation is; 10;51,28 spidi English (ID - 1033),

10;51,2B spidl comparison style = 196609,

10;51,28 spidl SOI Servers non-Unicoce sort order is; 10:51,28 spid) nocase iso (ID =52),

10:51,28 spidl SOI Servers non-Unicode character set is; 10;51.28 spidl iso 1 (ID = 1).

Операпии, выполняе.чнле эти'п нроцедуроИ, довол1л-10 очевидны. Сначала она загружает указанный фа1 1л во временную таблицу, используя BULK INSERT. Зате.м выполняет запрос SELECT * к временной таблице для выдачи ее содержимого.



Конечный резу.н.тат выно.тнсгтя процеду1)ы - по.тученне к.тпенто.м тскстового (Jraii.ia в виде набора данны.х, возвращаемых серверо.м.

ЗАМЕЧАНИЕ --

В ранних версиях SQL Server 7.0 имеется ошибка, исключающая возможность вызова sp readtext из процедур, использующих процедуры OLE-автоматизации (процедуры вида sp OAxxxx). Процедура sp readtext вызывает команду Transact-SQL BULK INSERT для загрузки текстового файла во временную таблицу, содержимое которой затем выдается в виде набора данных. Для выполнения команды BULK INSERT применяется поаавщик OLE, реализованный в модели свободных потоков (free threaded OLE provider). При использовании технологии ODSOLE (процедур вида sp OAxxxx) среда СОМ инициализируется с применением модели изолированных потоков (single-apartment model). Когда команда BULK INSERT вызывается потоком, уже инициализированным в данной модели, возникает конфликт между двумя моделями, который приводит к ошибке при инициализации OLE-DB Stream provider - команда BULK INSERT не может прочитать переданный ей файл операционной системы.

Обходной путь для решения этой проблемы требует модификации системного реестра. Чтобы BULK INSERT можно было вызывать в процедурах и сценариях, использующих модель изолированных потоков СОМ, следует выполнить следующие операции:

1. Запустить regedit.exe или regedt32.exe.

2. Найти ключ HKEY CLASSES ROOT\CLSID\{F3A18EEA-D34B-lld2-88D7-00C04F68DC44}\InprocServer32\ThreadingModel.

3. Заменить значение Free на Both.

Процедуры создания сценариев

Одна из расп1)остранспных задач админпстрированпя - генерация сценариев создания объектов базы данных. Иногда они нужны ад,мнн1и:траторам для создания дополнительных резервных копий, копирования базы данных или отдельного объекта данных лнбо для аигглиза каких-то специфических особенностей определения объекта.

Enterprise Manager предлагает весь.ма удобное средство для создания таких сценариев, и для решения подобных задач реко.мепдуется пользоваться п.мен-но и.м. Он осуществляет свои действия с по.мощыо основанной на СОМ технологии SQL-DMO (Distributed Management Objects), которая предоставляет приложения.м интерфейс для управления серверо.м. Поскольку Transact-SQL обеспечивает доступ к серверам СОМ через технологию ODSOLE (процедуры с префнксо.м sp OA), мы може.м обращаться к SQL-DMO прямо из SQL, минуя Enterprise Managetv (подробнее об этой технологии см. главу 19). Рассмотрп.м процедуру, KOTop;u! генерирует сценарии для со;адання объектов непосредственно из Transact-SQL:

USE master GO

IF DBJtCT ID(sp generate scripf) IS N01 NULL DROP PROC sp generate scnpt

CREATE PROC sp generate script

Pobjectname sysname-NULL. -- Шаблон имен колируемых обьектов @outputname sysnameNULL. -- Выходной файл (no умолчанию -- (SobjecT.name+ .SOL )



p,j:jlG(ii nt-NCLL, -- 1.сься maci\d нас'рсс-< л/я GCteiia

rensfer

Определяет, выводит^ сие^ар/й в в1де набора данных Имя сервера

Имя пользователя (;:о умолначию saj

Psorver sy£riane=doca;, (?1.5егга;де sysnane=sa. i-D3SSwora 5ySRa.iTe=NLLl. -- Пароль

Обьект: sp Generate sc,Tpt

Описание: Генерирует сценарий создания обьекта или -абэра обьечтов

Синтаксис: sp geGecate scr1pt [iacbjectRane= HMfl сбьекта или лаблсн (по у.чол^анию - все обьекты в текущей базе) ]

L ,i3ou6Dutnaine= ilMfl выходного файла (по умолнанию JoDjectnaiTe-* ,SQL итти

GCNERATfDJC.RIPCSCL для всех обьектов базы)]

1 ,(а5сг1рторТ10п$=биговая маска, указывающая настройки генерации

сценария]

Г,@resulLset= YES I NO -- Определяет, выводить ли сценарий в виде н'аСора данных (по умолчанию: YES )]

[ ,@5егуег= имя сервера ][. @-т5еггта;пе= имя пользователя ][ ,Capassword= пароль ]

Возвращаемое значение: (нет)

Автор: Кеп hendenson. Email: Knen( Knen.com

Версия: 2,0

Дата создания: 1596-12-0;. Дата последнего изменения: 1999-06-06,

/* Т|еременчые для хранения копстант SQL-ОМО опущень' для коагкост/. Они включены в версиь

исходного кода на компакт-диске / DECLARE ФрЬпате sysnaine,

JsqloDject int, -- Содержит указатель на обьек! SQL Senver

object int, -- Вспомогательная переменная для доступа к обьек^ам СОН

!3hr int, -- Содержит HRESULT. возвращаемый в СОМ

@lfobjecl mt -- Содержит указатель на обьект Tnansfer

IE (@objectname=/?) GOTO Help SET gresultset=UPPER((anesultset)

IE ((aobjectname IS NOT NOLL) AND (CHARINDEX(,@cbjectnarre)-0) AND (CHARINDEX( .(aobjectname)O) BEGIN

-- Гюлучить имя базы (по умолчанию - текущая база) SET @dbname=ISNULL(,PARSENAME(@objectname,3),DB NAMEO) SET @objectname=,3ARSENAME(@objectname,l) IE (@objectname IS NULL) BEGIN RAISERROR(Invalid object name,.16,1) RETURN -1 END

IE (goutputname IS NULL)

SET (?outpjtname=(aobjectname+ .SOL E.ND ELSE BEGIN

SET Codbname=DB NAMEO



if- (OculoulndiTie IS null;

SET gcutputraiTieGEN£R.ATED SCR!,pT.SQL

-- Создагь обьект SQLServer

EXEC (5nr=sp CACrc-ato SCLDMO.SOLServer, (SsqiObject OUiPUI IE (ghr <> 0) BEGIN

EXEC sp displayoaerronnEo bqiobjecl, P-hr

RETURN

- Создато обьект Transfer

EXEC @h.r=sp OACreate SOLDMO.Transfer, etfobject OUrPUT !F (@hr <> 0) BEGIN

EXEC sp displayoaerrorinfo latfobject, Phr

RETURN

-- Установить свойство CopyOata обьекта Transfer EXEC @hr = sp OASetProperty @cfobject. CopyData. 0 IE (@hr <> 0) BEGIN

EXEC sp displayoaerronnfo laifobject, @hr

REfURN

-- Указать обьекту Transfer копировать схему

EXEC Phr = sp OASetProperty @tfobject, CopyScherTra . 1

IE mv <> 0) BEGIN

EXEC sp d1splayoaerrorinfo @tfobject. @hr

RETURN

IF ((Pobjectnafne IS NULL) BEGIN -- Полунить все обьекты в базе

-- Указать обьекту Transfer колировать все обьекты

EXEC C hr = sp QASetProperty @tfobject. CopyAllObjects, 1

IF mv <> 0) BEGIN

EXEC sp dTSplayoaerrorinfo (Ptfobject. Ш

REIURN

-- Указать обьекту Transfer включить труппы

EXEC (ahr = sp OASetProperty (atfobject. IncludeGroups. 1

IF (.Chr <> 0) BEGIN

EXEC sp displayoaerronnfo Ptfobject. Phr

RETURN

-- Указать обьекту Transfer включить пользователей EXEC Phr = sp OASetProperty (atfobject, IncludeUsers. 1 IF (@hr <> 0) BEGIN

EXEC sp di5playoaerronnfo Ptfobject. Phr

RETURN

-- Указать обьекту Transfer включить учетные записи EXEC Phr = sp OASetProperty Ptfobject, IncludeLogins. 1 IF (Phr <> 0) BEGIN



RETURN

-- ВКГЮ11ПЬ Зависимые OGiC-K-!).

EXEC й1г sp OASetPrope-ty (JifuCjr.:. Ir.eiuaelbpcrdeix.eb . i IE (C=hr <> G) BEGIN

EXEC so dispaycdef,-c-Tifo (ptfopject, 5h!-

RETURN

IF ((pscriptopt;onb IS NULL;

SET ©scnDtcpfOfts- S)L!K)SC! .&! J. nci4,-e-<>- , Й0;Т,мССс- р'. ;е'аа!1, I faSQLD№Scnpt ifg9erb j PSC-lDFlOScr pi Bincl-ngs j C SQLDHOScriptJJataDasePerrriisS;Cr;s PSOFDMOScr;pi, Fecnnssio;;s \ @SQLDM0Script 0DjectPer3iissicns (aSOLaTOScnpi: CTusi.eredlnCexes @SOLBMOScript Inc;exes gS0LD40S::ript Ai lases iaSCLDM.OScript DRi Ai i 1 @S0EDMOScnct IncludeHeaders

END ELSE BEGIN

DECLARE gobnane sysname, (Pootype vanchan(2), laobcwner sysname, (aOBJECT !YPFS varciiarOO;. Pobcode int

-- Используется для преобразования sysobjec.ti. type в биОвуо .чатрииу, требуемую обье-Transеп SET POBJECt TYPES-T V U Р U R

-- HaiiT,i все обьекты, соответствус1;.ие tscrci-.y, и помесить / -- в список обьектов. для которых создаемся ;,:е11арий DECLARE CbjectList CURSOR FOR

SELECT name.tybe,lJSER NAME(b-d; FROM sysobjects

WhERE (name LIKE (aobjectname) AND (CHARINDEX(type+ ,(aOBJECT TYPES;<>C) AND (OBJECTPROPERTYdd, IsSyste.mTabie)-G) AND (status>OT

UNION ALL Включить пспьзоватетьские м допмь;/

SELECT name,T,USER NAME(uid)

FROM SYSTYPES

WHERE (usentype & 2G6)<>C

AND (name I IKE (aobjectname)

OPEN Object! ist

FETCH ObjectList INTO @obname, ( ottype, goDowner wHILt (№FETCn S ATuS 0; BEGIN

SET (aobcode=POWER(2, (CHARINDEX(laobtype- ,@CBJECr TYPES)/3))

EXEC @hr = sp OAMethod @tfobject, AcoObjectByNam.e, NULL, gobname, (aobcode, (aobowner IF mr <> C) BEGIN

EXEC sp dTSpiayoaerrorinfo @tfobject, (phr

RETURN

FETCH ObjectList INTO Pobname, (Sobtype. Aobowner END CLOSE ObjectList



OhALLCfAiF CbjeclList

It- (3scriDtopt1or:s IS .NjlL)

-- Если сиенарий создается пе no ьсе/ Сазе, все упрслае-ся SET iascrptoptions=?SOLDMOSc.-;pL De* duU

- Установить свойстБО Scriptiype обьек-а Transfer EXEC Phr = sp OASetProperty Ptfobjeci, ScripUype, PscnplopLicns IF (@hr <> 0) BEGIN

EXEC sp d;splayoaerrorinfo C-Ifooject.. (=hr

RETURN

-- 1:одкл,очИ7ься к серверу

IF {password IS .NOT NULL) AND (@passworc<> )

EXEC @hr = sp OAMethod @sqio6ject, Connect. NULL, server, (pLiSernatie.

gpassword ELSE

EXEC (phr = sp OAMethod @sqIobject. Connect. NULL. @server. @username IF (C hr <> 0) BEGIN

EXEC sp disp]ayoaerrorTnfo (Ssqiopject. &hr RETURN

- Получить указатель на кол,:екцию баз цаьныл обьекта SQLServer EXEC 3hr = sp OAGetPnoperty @sqlobject. Databases. @ooject OUT IF ghr <> 0 BEGIN

EXEC sp d1 splayoaernoninfo (Bsqlobject. &nr

RETURN

-- Получить указатель д.тя требуемой базы данных в копттекции Databases EXEC (ahr = sp OAMethcd laobject, Item. @object OUT. gabname IF @hn <> 0 BEGIN

EXEC sp displayoaenrorino Pobject, @hr

RETURN

PRINT Ignone the coce displayed below. Its a nemnant of the SOL-DHC method used to pnoduce the script file

-- Вызвать метод ScriptTransfer обьелта Database для создания сценария

EXEC ?hr = sp OAMethod (Sobject. ScriptTransfen.NULL, @tfobject. 2, Cooutputname

IF №n <> 0 BEGIN

EXEC sp displayodennoninfo laobject. l?hr

RETURN

EXEC sp OADestroy (Ssqlobject -- Удаление обьекта EXEC sp OADestroy (atfobject -- Удаление обьекта

IF (@resultset= YES ) EXEC sp reaatextfile @outputname

RETURN 0

Help:



1 ... 43 44 45 46 47 48 49 ... 55
© 2004-2024 AVTK.RU. Поддержка сайта: +7 495 7950139 в тональном режиме 271761
Копирование материалов разрешено при условии активной ссылки.
Яндекс.Метрика