رشته :فناوری اطالعات و ارتباطات موضوعSQLSEVER(STORED PROCEDURE): استاد راهنما :مهندس سیامک ملک پور نگارش:پرویز جعفرخانی E-mail:parviz_jafarkhani@yahoo.com مباحث درباره: -ایجاد Stored procedure پارامترها -تعریف متغیر دستور اجرا و مثال -شرح چند sp رویه یا زیر برنامه :برنامه های کوچک ومستقل هستند که کار خاصی را انجام می دهند و می توانند خروجی هایی داشته باشند. پروسیجر های sqlserverرا با spمعرفی می کنند و سه رویه دارند: 1. Insert 2. Update 3. delete برای هر spمی توان یک اسم دلخواه وبا حروف بزرگ یا کوچک بطور کامل یا مخفف استفاده کرد. ( Sp_insert_Recپروسیجر درج رکورد) ( :Permissionمجوز،اجازه) برای کسانی که می توانند از sp :Sysadminمدیر گروه یا کل سرور که دسترسی به تمام قسمت ها را دارد استفاده کنند: :Db-ownerکاربری که با بانک اطالعاتی کار می کند دسترسی به جدول،فیلد،رکورد برای هر پروسیجر می توان یک یا چند پارامتر ارسال نمود روش آن در اعالن sp است وبا عالمت @ مشخص می شود و پامترها درون () قرار می دهیم ))Creat stored produre my_insert (@ name char(10 پامتر ارسال نام دلخواه اعالن پروسیجر پارامتر می توان عالوه بر مقدار به spمی تواند مقدار نیز برگرداند برای این کار از پارامتر outputاستفاده می کنیم: )Creat stored procedure multi (@ x int , @y int output مقدار برگشتی فقط ارسال مقدار با استفاده از کلمه کلیدی DECLAVEدرابتدا متغیر تعریف می کنیم و متغیرها بعداز عبارت ASقرار می گیرند. برای مقدار دهی به متغیر از کلمه SETیا SELECTاستفاده می کنیم. یک SPایجاد کنید که جمع دو پارامتر را انجام دهد؟ )Creat stored procedure sum (@ x int , @ y int As تعریف متغیر Declave @ s int Set @s=0 مقدار اولیه @s=@x+@y Print @s برای اجرای spدر query analyzerاز دستور زیر استفاده می کنیم: اجرای برنامه صفحه قبل )EXEC sum(2,3 5خروجی sp_dbremove Removes a database and all files associated with that database. Important This procedure is provided for backward compatibility only. For removable media databases, use sp_detach_db to remove a database from the server. Syntax sp_dbremove [ @dbname = ] 'database' [ , [ @dropdev = ] 'dropdev' ] Arguments [@dbname =] 'database' Examples This example removes a database named sales and all files associated with it. sp_dbremove sales Sp_dbremove حذف يك پايگاه داده به همراه فايل هاي مرتبط با آن پايگاه مهمترين مسله ارايه شده و سازگار براي اين روش حذف بانگ هايي كه قبال ( detachجدا شد ن) يا ( removeحذف) شده اند. اين حذف فیريكي است و پايگاه به طور كامل فايل هاي مرتبط را حذف مي كند. نام بانكي كه حذف خواهد شد '@ dbname='database '@dropdev='dropdev اگر عملیات حذف موفقیت آمیز = 0عدم موفقیت =1 اجراي حذف پايگاه داده با فايل هاي مرتبط فقط كاربر كه نقش Sysadminرا دارد امكان پذير است. Exec sp_dbremove sales xp_stopmail Stops a Microsoft® SQL Server™ mail client session. Syntax xp_stopmail Return Code Values 0 (success) or 1 (failure) Result Sets xp_stopmail returns this message: Stopped SQL mail session. Remarks If there is no existing SQL Server mail session to stop, a message is returned. Permissions Execute permissions for xp_stopmail default to members of the db_owner fixed database role in the master database and members of the sysadmin fixed server role, but can be granted to other users. Sp_stopmail متوقف كردن پست الكتريكي يا ايستگاه )(client با اجراي اين دستور كد بازگشت داده مي شود 0موفقیت و 1عدم موفقیت Exec xp_stopmail مجوز اجراي spفوق به طور پیش فرض sysadmin , db_ownerمي توان اجرا كرد براي دادن مجوز به ديگران نیز توسط sysadminاست. sp_adduser Adds a security account for a new user in the current database. This procedure is included for backward compatibility. Use sp_grantdbaccess. Syntax sp_adduser [ @loginame = ] 'login' [ , [ @name_in_db = ] 'user' ] [ , [ @grpname = ] 'group' ] Arguments [@loginame =] 'login' Is the name of the user's login. login is sysname, with no default. login must be an existing Microsoft® SQL Server™ login or Microsoft Windows NT® user. [@name_in_db =] 'user' Is the name for the new user. user is sysname, with a default of NULL. If user is not specified, the name of the user defaults to the login name. Specifying user gives the new user a name in the database different from the login ID on SQL Server. [@grpname =] 'group' Is the group or role that the new user automatically becomes a member of. group is sysname, with a default of NULL. group must be a valid group or role in the current database. Microsoft SQL Server version 7.0 uses roles instead of groups. Return Code Values 0 (success) or 1 (failure) Sp_adduser افزودن حساب كاربري به صورت حساب امنیتي براي يك كاربر جديد در بانك جاري سازگار با sp_grantdb Syntax '@loginname='login نام كاربر است كه ورود به سیستم ) (sysnameبا پیش فرض و بدون پیش فرض البته ورود به سايت با loginهاي sqlو Windows ntامكان پذير است. @name_in_db='user نام كاربر جديد از كاربر هاي sysnameاست با پیش فرض nullاگر نام كاربر مشخص نشده باشد از نام پیش فرض login كه وارد شده است استفاده مي كند تا بتواند در پايگاه هاي مختلف براي او شناسه ورود ايجاد كند. '@grpname='group تعین عضويت در گروه است اگر عضو گرئه ( sysnameمال سیستم) با ورودي nullهیچ وارد شود البته گروه معتبر در بانك جاري باشد تا sqlنقش كاربر در گروه را بداند. دقت نام كاربر بین 1-128كاركتر باشد و مجاز به استفاده از حروف واعداد و عالئم هستیم. در نام كاربر نبايد از | backslashو فضاي خالي استفاده كرد. 'Exec sp_adduser 'haroldq','harold' ,'fort_mudge xp_sscanf Reads data from the string into the argument locations given by each format argument. Syntax xp_sscanf {string OUTPUT, format} [, argument [,...n]] Arguments string Is the character string to read the argument values from. OUTPUT Is a formatted character string similar to what is supported by the C-language sscanf function. Currently only the %s format argument is supported. Xp_scanf خواندن يك مقدار رشته اي با قالب مشخص و ذخیره در يك متغیر دستور scanfاز دستورات زبان cاست و كاركتر هاي خوانده شده با توجه به قالب spچون outputدارد خروجي خواهد داشت و آرگومان اخذ شده به عنوان خروجي به صورت رشته اي نگهداري مي شود. آرگومان و فرمت شبیه زبان cاست و فقط مدل رشته اي حمايت مي كند %sكل دريافت شده رشته اي خواد بود. *اگر ركوردي از جدول با scanfخوانده شود 50پارامتر يا فیلد آن را با قالب رشته اي دريافت خواهد كرد. موفقیت آمیز = 0عدم موفقیت =1 sp_OADestroy Destroys a created OLE object. Syntax sp_OADestroy objecttoken Arguments objecttoken Is the object token of an OLE object previously created by sp_OACreate. Return Code Values 0 (success) or a nonzero number (failure) that is the integer value of the HRESULT returned by the OLE Automation object. Examples This example destroys the previously created SQLServer object. EXEC @hr = sp_OADestroy @objectIF @hr <> 0BEGIN EXEC sp_OAGetErrorInfo @object RETURNEND Sp_OAdestroy حذف شي OLE اگر شي oleتوسط OAcreatايجاد شده باشد يك كد بازگشتي از ايجاد شي در HRESULTنگه داري مي شود . فقط اعضاي sysadminيا مواردي كه نقش دارند مي توانند Sp_OAdestroyرا اجرا كنند اين spحذف فقط پارامتر آن شي است. Exec @hr =sp_OAdestroy @object If @hr <>0 Begen Exce sp_OAgetErrorInfo @object Return End 0موفقیت بعداز اجرای spنتیجه حذف شی موجود در متغیر hrذخیره می شود. Nعدم موفقیت چنانچه hr=0شد حذف صورت گرفته و اگر hr<>0شد spمربوط به اعالم اطالعات خطا اجرا و مشاهده عدم حذف گزارش می شود. sp_attach_db Attaches a database to a server. Syntax sp_attach_db [ @dbname = ] 'dbname' , [ @filename1 = ] 'filename_n' [ ,...16 ] Arguments [@dbname =] 'dbname' Is the name of the database to be attached to the server. The name must be unique. dbname is sysname, with a default of NULL. [@filename1 =] 'filename_n' Is the physical name, including path, of a database file. filename_n is nvarchar(260), with a default of NULL. There can be up to 16 file names specified. The parameter names start at @filename1 and increment to @filename16. The file name list must include at least the primary file, which contains the system tables that point to other files in the database. The list must also include any files that were moved after the database was detached. SP_attach افزودن یا اضافه کردن یک بانک اطالعاتی به سرور Syntax 'sp_attach_db [ @dbname = ] 'dbname ] , [ @filename1 = ] 'filename_n' [ ,...16 آیا نام بانک به سرور وصل شده است منحصر به فرد است باید نام از بانک های موجود در ( sysnameسیستم) باشد با پیش فرض خالی(رکوردی نداشته باشد) به صورت فیزیکی نام هر فایل عبارت است مسیر و اسم فایل از یک بانک اطالعاتی . *نام حداکثر 260کارکتر است *می توان درهر مرحله (وصل کردن) 1-16فایل ومسیر بکار ببریم. Examples This example attaches two files from pubs to the current server. EXEC sp_attach_db @dbname = N'pubs', @filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf', @filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf' را به متغیرpubs.mdf کارکتر می تواند باشد فایل260 از یک مسیر طوالنی که آنرا به سرور وصل کند فایلsp نسبت می دهد تاfilename1 یا پرامتر . قبال موجود استpubs.mdf sp_get_distributor Determines whether a Distributor is installed on a server. This stored procedure is executed at the computer where the Distributor is being looked for, on any database. Syntax sp_get_distributor تعیین یک توزیع کننده روی سرور با اجرای این spتعیین می شود یک توزیع کننده (یکسان سازی روی بانک) نقش عمومی عرض و ارتفاع سلول ها را یکسان میکند تا در Query (گزارشات) جدول یکسان و قالب خوبی داشته باشد. فقط اجرا است و پارامتر ندارد وجدول های بانک را مرتب می کند از لحاظ سطر و ستون و حتی رکورد های تکراری را کنار هم قرار می دهد و اجرا عمومی است و کاربران نیز می توانند spرا اجرا نمایند. sp_add_maintenance_plan Adds a maintenance plan and returns the plan ID. Syntax sp_add_maintenance_plan [ @plan_name = ] 'plan_name' , @plan_id = 'plan_id' OUTPUT Arguments [@plan_name =] 'plan_name' Specifies the name of the maintenance plan to be added. plan_name is varchar(128). @plan_id = 'plan_id' Specifies the ID of the maintenance plan. plan_id is uniqueidentifier. Return Code Values 0 (success) or 1 (failure) Remarks sp_add_maintenance_plan must be run from the msdb database and creates a new, but empty, maintenance plan. To add one or more databases and associate them with a job or jobs, execute sp_add_maintenance_plan_db and sp_add_maintenance_plan_job. sp_add_maintenance_plan Adds a maintenance plan and returns the plan ID. افزودن یک تعمیر و نگهداری به سیستم وبرگشت کد plan id Syntax sp_add_maintenance_plan [ @plan_name = ] 'plan_name' , تعین یک اسم برای برنامه نگهداری با حداکثر 128کارکتر باز کردن یک کد توسط زیر برنامه و ذخیره در plan id مقدار برگشتی: @plan_id = 'plan_id' OUTPUT موفقیت آمیز = 0عدم موفقیت =1 این spباید توسط sysadminاز msdbاجرا گردد تا برنامه ریزی نگداری برای یک یا چند پایگاه داده که براساس کار یا شغل خاص هستند انجام گیرد. Examples Create a maintenance plan called Myplan. DECLARE @myplan_id UNIQUEIDENTIFIEREXECUTE sp_add_maintenance_plan N'Myplan',@plan_id=@myplan_id OUTPUTPRINT 'The id for the maintenance plan "Myplan" is:'+convert(varchar(256),@myplan_id)GO'The id for the maintenance plan "Myplan" is:' FAD6F2AB-3571-11D3-9D4A-00C04FB925FC planid یک برنامه نگهداری ایجاد می شود و یک کدmyplan این برنامه به نام .ایجاد خواهد کرد . نگهداری خواهد شدplanid این کد بعدا برای حذف الزم خواهد شد و در 'The id for the maintenance plan "Myplan" is:' FAD6F2AB-3571-11D3-9D4A-00C04FB925FC sp_ActiveDirectory_Obj Controls the registration of a Microsoft® SQL Server™ database in the Microsoft Windows® 2000 Active Directory™. Syntax sp_ActiveDirectory_Obj [ @Action = ] N'action' [, [ @ObjType = ] N'database' ] , [ @ObjName = ] N'database_name' Arguments [ @Action = ] N'action' Specifies whether the Active Directory object registering the SQL Server database is to be created, updated, or deleted. action is nvarchar(20) with a default of N'create'. (بانک اطالعاتی) جهت استفاده در ویندوزsql کنترل نمودن ریجستری در : Active directory لیست جداول و بانک های اطالعاتی را نگهداری می کند لذا افزوده شدن به را خواهدwindows بانک اطالعاتی و قابلیت مدیریت باwin پوشه فوق در .داشت Syntax sp_ActiveDirectory_Obj [ @Action = ] N'action' تعیین نوع عمل طبق جدول زیر برای اعمال روی بانک اطالعاتی پیش . استNactive کارکتر یا خود20 فرض Value Description create Registers the SQL Server database in the Active Directory by creating an MS-SQL-SQLDatabase object in the directory. The MS-SQL-SQLDatabase object records the attributes of the database at the time the create action is performed. If you specify create and the database is already registered, an update action is performed. update Refreshes the attributes registered for the database in the Active Directory by updating the attributes recorded in the MS-SQLSQLDatabase object in the Active Directory. If you specify update and the database is not registered, a create action is performed. delete Removes the Active Directory registration for the database by deleting the MS-SQL_SQLDatabase object from the Active Directory. :Creatچنانچه از قبل پایکاه sqlایجاد شده باشد بروز رسانی می شود و اگر بار اول باشد در اکتیودایرکتوری با پیش فرض های الزم اضافه گردد در پوشه به نام MS-SQL-SQLDBذخیره می شود. :Updateبه روز رسانی صفات پایگاه داده از قبل ثبت شده در اکتیودایرکتوری. :Deleteحذف دایرکتوری فعال برای پایگاه داده یا حذف MS-SQL-SQLDB : MS-SQL-SQLDBدر واقع یک شی در دایریکتوری فعال ویندور خواهد بود که قابلیت( ایجاد-به روز رسانی – حذف) را دارد تا پایگاه داده sqlنیز با این کار مدیریت گردد. ] '[ @ObjType = ] N'database تعیین نوع درخواست پایگاه داده و انجام عمل در خواستی '[ @ObjName = ] N'database_name تعیین نام باتک اطالعاتی که عمل ثبت نام روی آن انجام می شود واز قوانین شناسه ها پیروی می کند و به این نام در دایرکتوری فعال توسط spفوق ایجاد خواهد شود. موفقیت آمیز = 0عدم موفقیت =1 Examples This example registers the Northwind database from the current instance of SQL Server in the Active Directory. DECLARE @RetCode INTEXEC @RetCode = sp_ActiveDirectory_Obj @Action = N'create', @ObjType = N'database', @ObjName = 'Northwind'PRINT 'Return code = ' + CAST(@RetCode AS VARCHAR) را به عنوان یک پایگاه داده درsql ازNorthwind مثال ارائه شده ثبت پایگاه داده @ نگهداری میRetcode دایرکتوری فعال است که عملیات بازگشتی در متغیر .شود sp_password Adds or changes a password for a Microsoft® SQL Server™ login. Syntax sp_password [ [ @old = ] 'old_password' , ] { [ @new =] 'new_password' } [ , [ @loginame = ] 'login' ] Arguments [@old =] 'old_password' Is the old password. old_password is sysname, with a default of NULL. [@new =] 'new_password' Is the new password. new_password is sysname, with no default. old_password must be specified if named parameters are not used. [@loginame =] 'login' Is the name of the login affected by the password change. login is sysname, with a default of NULL. login must already exist and can only be specified by a member of the sysadmin fixed server role. Return Code Values 0 (success) or 1 (failure) Remarks SQL Server passwords can contain from 1 to 128 characters, including any letters, symbols, and numbers. The new password is updated and stored in an encrypted form so that no user, not even system administrators, can view the password. Sp_pass افزودن یا تغییر رمز کاربر ورودی در sql رمز عبور قدیم یا با پیش فرض خالی وارد گردد (البته خالی به خاطر sysname بودن این پارامتر است) رمز جدید بدون پیش فرض خالی مورد قبول sysnameبا پارامتر وارد گردد. ورود به سایت با عضو نقش sysadminو حتی با پیش فرض خالی (ایجاد خواهد شد) موفقیت آمیز =0 برای اعمال تغییر رمز نتیجه : sp عدم موفقیت =1 .عدد) خواهد بود-نماد- کارکتر با (حروف1-128 رمز در محدوده:توضیحات رمز عبور جدید کاربران در فرمی درsql طوری رمزگزاری می شوند که حتی مدیران هم نمی توانند مشاهده کنند A. Change the password of a login without the former password This example changes the password for the login Victoria to ok. EXEC sp_password NULL, 'ok', 'Victoria' :مثال : را اجرا می کندsp شخص با رمز قدیم وارد شده وA در مثال برای ورود به سایت ویکتوریاok تغییر رمز عبور هیچ B. Change a password This example changes the password for the login Victoria from ok to coffee. EXEC sp_password 'ok', 'coffee' تغییر رمز ویکتوریا به قهوه:B sp_catalogs Returns the list of catalogs in the specified linked server, which is equivalent to databases in Microsoft® SQL Server™. ایجاد یک لیست کاتالوگ که نتایج بازگشتی spهاست برای پیوند به سرور همانند پایگاه داده در sqlعمل می کند. در واقع یک پایگاه داده از بازگشت های spبه صورت کاتالوگ ایجاد می کند. Syntax 'sp_catalogs [ @server_name = ] 'linked_svr نام سرور مرتبط را می دهیم بدون پیش فرض البته sysnameیعنی نامی که در سیستم داریم. spمجوز:به طور پیش فرض به صورت عمومی دسترسی دارند و می توانند فوق را اجرا کنند. Examples This example returns catalog information for the linked server named OLE DB ODBC Linked Server #3. :مثال وجود داشته باشد کاتالوگ نتایجOLE DB ODBC LINKED برای مسیر .فروشگاه را به آن برگشت یا پیوند می زند USE master sql استفاده از بانک اطالعاتی موجود EXEC sp_catalogs 'OLE DB ODBC Linked Server #3' . ذکر شده لینک می کندOLE فوق نتایج را بهsp اجرا sp_delete_maintenance_plan Deletes the specified maintenance plan. حدف برنامه تعمیر و نگهداری برای نقشه مشخص شده Syntax 'sp_delete_maintenance_plan [ @plan_id = ] 'plan_id حذف شناسه IDنگداری شده و منحصر به فرد که قبال ایجاد شده است. موفقیت آمیز =0 باشد باید از پایگاه msdbکه این spرا دارد اجرا گردد. اگر عمل حدف عدم موفقیت =1 تذکر: شخصی که نقش sysadminرا دارد می تواند آن را از msdb اجرا و حذف نماید. Examples Deletes the maintenance plan created with sp_add_maintenance_plan. EXECUTE sp_delete_maintenance_plan 'FAD6F2AB-3571-11D3-9D4A00C04FB925FC' مثال باال حذف برنامه تعمیر و نگه داری خلق شده که آن را می دانیم وارد و آن .را حذف می کند xp_sprintf Formats and stores a series of characters and values in the string output parameter. Each format argument is replaced with the corresponding argument. Syntax }xp_sprintf {string OUTPUT, format ]][, argument [,...n ذخیره کاراکتر های اخذ شده درون متغیر و یا جایگزین در یک متغیر Printfدر زبان cبرای نمایش محتوای اخذ شده توسط Scanfاست در این جا با داشتن outputقادر به ارسال مقادیر به یک متغیر با مکان مشخص است بدیهی است اگر scanfزبان cفقط %Sرشته پذیرفته،دستور printfقابلیت چاپ %Sرشته را دارد. @y=exce sp_printf نتیجه اجرای این spگسترش یافته روی پایگاه که قبال رکوردی از آن خوانده شده به محیط بیرون یا به درون متغیری در خارج است و sqlقادر به نمایش متغیر با سایر توابع است. ارسال نتایج به @yو برای نمایش کافی است. sp_generatefilters Creates filters on foreign key tables when a specified table is replicated. This stored procedure is executed at the Publisher on the publication database. Syntax sp_generatefilters [ @publication =] 'publication' Arguments [@publication = ] 'publication' Is the name of the publication to be filtered. publication is sysname, with no default. Return Code Values 0 (success) or 1 (failure) ایجاد فیلترهایی برای جدول های تکراری میزکار(جدول هایی که در حال کار با آن هستیم) البته فیلترها در بخش انتشارات پایگاه داده موجود است فقط نام آن ها :ذکر می کنیم در پارامتر مقابل sp_generatefilters [ @publication =] 'publication' اسم یک فیلتر Remarks sp_generatefilters is used in merge replication. Permissions Only members of the sysadmin fixed server role or the db_owner fixed database role can execute sp_generatefilters. می دهد در غیر0 اگر فیلتر با موفقیت روی جدول های میز کار اثر کند مقدار . می دهد1 این صورت (مالک) را دارند اجازه صدور فیلتر ازdb-owner وsysadmin فقط کاربران نقش .انتشارات را بر روی چند جدول را دارند sp_renamedb Changes the name of a database. تغیر نام بانک اطالعاتی Syntax sp_renamedb [ @dbname = ] 'old_name' , نام قدیم بانک اطالعاتی وارد شود [ @newname = ] 'new_name' نام جدید بانک اطالعاتی وارد شود Arguments [@dbname =] 'old_name' Is the current name of the database. old_name is sysname, with no default. [@newname =] 'new_name' Is the new name of the database. new_name must follow the rules for identifiers. new_name is sysname, with no default. است و پیش فرض نمیsysname بانک قدیم باید وجود داشته باشد واز نام جدید جایگزین شناسه می شود که همان نام قدیم بانک.شود .اطالعاتی است موفقیت آمیز =0 نتیجه: عدم موفقیت =1 فقط sysadminیا کاربری که نقش adminرا دارد می تواند تغییر نام دهد. ’‘accounting’ , ‘financial نام جدید نام قدیم بانک Exec sp_rename sp_xml_removedocument Removes the internal representation of the XML document specified by the document handle and invalidates the document handle. از حافظه و آزاد سازی آنXML حذف اسناد Note A parsed document is stored in the internal cache of Microsoft® SQL Server™ 2000. The MSXML parser uses one-eighth the total memory available for SQL Server. To avoid running out of memory, run sp_xml_removedocument to free up the memory. زبان نشانه گزاریExtanded markup langage:XML توسعه یافته که برای ارسال داده در قالب خاص به صفحات وب و پایگاه داده .است در حافظه کش داخلی می تواند قرارxml عدد فایل8 به تعدادsqlserver در . را حذف و حافظه کش را خالی می کندxml فوق اینsp بگیرد و hdoc Is the handle to the newly created document. An invalid handle returns an error. hdoc is an integer. Return Code Values 0 (success) or >0 (failure) :hdoc بدست می آید و در این به عنوانxml است که موقع ایجاد اسنادinteger یک عدد جهت حذف سند مشخص به کار می رود و اگر اشتباه باشد یک مقدارhandel یک .خطا برگشت می دهد This example removes the internal representation of an XML document. The handle to the document is provided as input. EXEC sp_xml_removedocument @hdoc خاص از حافظه به کار می رود وxml به عنوان ورودی جهت حذفhdocپارامتر . یک عدد صحیح استhandel sp_addrole Creates a new Microsoft® SQL Server™ role in the current database. ایجاد یا تعریف یک نقش جدید به بانک جاری(نقش یک نوع مجوز جدید) یا بهتر بگوییم بانک قابلیت چندین نقش را داشته باشد وبا هر نقش کار خاصی را انجام دهد. Syntax 'sp_addrole [ @rolename = ] 'role ] '[ , [ @ownername = ] 'owner این نام جدید با از نقش های موجود sysnameباشد،با پیش فرض و از شناسه هایی که قبال برای dbدادیم و موجود دارد نباشد. کاربر جدید یا همان نقش جدید بانک از sysnsmeبا پیش فرض های dboاست البته ویندوز مشخصه های شناخته شده را به کاربر می دهد. SQL Server roles can contain from 1 to 128 characters, including letters, symbols, and numbers. However, roles cannot: Contain a backslash character (\). Be NULL, or an empty string (''). کارکتراستفاده می کند1-128 ازsql شماره گزاری،) (سمبل هاsymbols برای . (\) و (") نباید در نقش گزاری استفاده کردbackslash ولی عالمت Examples This example adds the new role called Managers to the current database. EXEC sp_addrole 'Managers' ‘ است این نقش جدید قابلیتmanger’ افزودن نقش جدید پایگاه جاری به نام شناخته شده است ونوشتنdbo وsysname درsql مدیریت دارد و قبال توسط برگشت می دهد پس نقش جدید بانک1 مقدارsp خواص نامعقول عدم اجرای . (مدیریت) استmanger قابلیت sp_delete_job هدف spحذف یک کاال یا شی با اخذ شناسه یا نام شی Deletes a job. یک شناسه عددی =Job_id پارامتر های ارسالی توسط کاربر: اسم کاال یا شی =Job_name تعیین موقیت سرور =originating_server پارمتر های ارسالی job-idباید منحصر به فرد تعریف شده باشد و پیش فرض nullاست برای نام یک مقدار رشته ای sysname است و ممکن است nullباشد. :عملیات حذف باید توسط خود مالک در حالت مالکOwns .صورت گیرد مدیر سیستمSysadmin Examples This example deletes the job Nightly Backups. USE msdb EXEC sp_delete_job @job_name = 'Nightly Backups' . جاری استmsdb حذف کن پشتیبان گیری شبانه که در sp_OACreate Creates an instance of the OLE object on an instance of Microsoft® SQL Server™. Syntax sp_OACreate progid, | clsid, objecttoken OUTPUT [ , context ] Arguments progid Is the programmatic identifier (ProgID) of the OLE object to create. This character string describes the class of the OLE object and has the form: 'OLEComponent.Object' OLEComponent is the component name of the OLE Automation server, and Object is the name of the OLE object. The specified OLE object must be valid and must support the IDispatch interface. For example, SQLDMO.SQLServer is the ProgID of the SQL-DMO SQLServer object. SQL-DMO has a component name of SQLDMO, the SQLServer object is valid, and (like all SQL-DMO objects) the SQLServer object supports IDispatch. ایجاد یک شی oleدر sqlسرور پارامترها: Prog id یک شناسه prog idاز شی oleایجاد می کند که توصیف از کالس شی است. شی ایجاد شده باید با رابطه IDispatchمربوط به sqlمطابقت داشته باشد و پشتیبانی گردد البته برای مثال IDispatchیک شی پشتیبان شده توسط sql serverاست و مشابه آن sql-DMOاز sql serverاست یعنی باید شی و کالس آن توسط sql serverپشتیبانی گردد که در prog idمشخص می شود. Specifies the execution context in which the newly created OLE object runs. If specified, this value must be one of the following: 1 = In-process (.dll) OLE server only 4 = Local (.exe) OLE server only 5 = Both in-process and local OLE server allowed :ole تعیین چهار چوب اجرا نام دلخواه و فقط سرور قابل استفاده.dll فقط در رویه ایجاد شده در فایل1 .است به صورت فایل اجرایی در رویه های محلی قابل استفاده است4 قابلexe ویا سرور با فایلdll در هر دو فرایند اعم از محلی با فایل های5 استفاده خواهد بود This example creates a SQL-DMO SQLServer object by using its ProgID. DECLARE @object intDECLARE @hr intDECLARE @src varchar(255), @desc varchar(255)EXEC @hr = sp_OACreate 'SQLDMO.SQLServer', @object OUTIF @hr <> 0BEGIN EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc RETURNEND مثال باال ایجاد یک شی درست خواهند شود واشیا در کالسexe یاdll ها به صورت فایل هایOle ) استC# های خود قابل استفاده هستند (بحث کالس و شی مشابه