Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí na:SQL ServerAzure
SQL Managed Instance
Vytvoří novou službu. Service Broker služba je název pro konkrétní úkol nebo sadu úkolů. Service Broker používá název služby k směrování zpráv, doručování zpráv do správné fronty v databázi a vynucování smlouvy pro konverzaci.
Syntax
CREATE SERVICE service_name
[ AUTHORIZATION owner_name ]
ON QUEUE [ schema_name. ]queue_name
[ ( contract_name | [DEFAULT][ ,...n ] ) ]
[ ; ]
Arguments
service_name
Je název služby, kterou vytváříte. Nová služba je vytvořena v aktuální databázi a je vlastněna hlavním subjektem uvedeným v klauzuli AUTHORIZATION . Názvy serverů, databází a schémat nelze specifikovat.
service_name musí být platný sysname.
Note
Nevytvářejte službu, která používá klíčové slovo ŽÁDNÉ pro service_name. Když zadáte ANY název služby v , CREATE BROKER PRIORITYpriorita se zvažuje pro všechny služby. Není omezena na službu, jejíž jméno je JAKÉKOLI.
AUTHORIZATION
owner_name
Nastaví vlastníka služby na určeného uživatele nebo roli databáze. Pokud je aktuální uživatel dbo nebo sa, může owner_name být jménem jakéhokoliv platného uživatele nebo role. Jinak musí owner_name být jméno aktuálního uživatele, jméno uživatele, ke kterému má aktuální uživatel oprávnění IMPERSONATE, nebo jméno role, ke které aktuální uživatel patří.
Na QUEUE [ schema_name.] queue_name
Specifikuje frontu, která přijímá zprávy pro tuto službu. Fronta musí existovat ve stejné databázi jako služba. Pokud není uveden žádný schema_name , schéma je výchozím schématem pro uživatele, který příkaz vykonává.
contract_name
Specifikuje smlouvu, pro kterou může být tato služba cílem. Servisní programy zahajují konverzaci s touto službou pomocí specifikovaných smluv. Pokud nejsou žádné smlouvy specifikovány, služba může pouze zahajovat konverzaci.
[]DEFAULT
Specifikuje, že služba může být cílem konverzací následujících po smlouvě DEFAULT . V kontextu této klauzule DEFAULT není klíčové slovo a musí být vymezeno jako identifikátor. Smlouva DEFAULT umožňuje oběma stranám konverzace posílat zprávy typu DEFAULTzprávy. Typ DEFAULT zprávy používá validaci ŽÁDNÉ.
Remarks
Služba zpřístupňuje funkcionalitu poskytovanou smlouvy, se kterými je spojena, aby ji mohly využívat i jiné služby. Prohlášení CREATE SERVICE specifikuje smlouvy, pro které je tato služba cílem. Služba může být cílem pouze pro konverzace, které využívají smlouvy specifikované službou. Služba, která specifikuje žádné smlouvy, neposkytuje žádnou funkcionalitu ostatním službám.
Konverzace zahájené touto službou mohou využívat jakoukoli smlouvu. Vytváříte službu bez specifikace smluv, když služba pouze zahajuje konverzace.
Když Service Broker přijme novou konverzaci ze vzdálené služby, název cílové služby určuje frontu, do které broker umisťuje zprávy do konverzace.
Permissions
Oprávnění pro vytvoření služby je výchozí pro členy db_ddladmindb_owner nebo pevné databázové role, nebo pro pevnou serverovou roli sysadmin . Uživatel, který příkaz vykonává, CREATE SERVICE musí mít REFERENCES oprávnění k frontě a ke všem specifikovaným kontraktům.
REFERENCES Oprávnění pro službu je výchozí pro vlastníka služby, členy db_ddladmin pevných databázových rolí nebo db_owner členy sysadmin pevné serverové role.
SEND Oprávnění pro službu jsou výchozí pro vlastníka služby, členy db_owner pevné databázové role nebo členy pevné serverové sysadmin role.
Služba nemusí být dočasným objektem. Názvy služeb začínající na jsou # povoleny, ale jsou trvalými objekty.
Examples
A. Vytvoření služby s jednou smlouvou
Následující příklad vytváří službu //Adventure-Works.com/Expenses ve frontě ExpenseQueue ve schématu dbo . Dialogy zaměřené na tuto službu musí dodržovat smlouvu //Adventure-Works.com/Expenses/ExpenseSubmission.
CREATE SERVICE [//Adventure-Works.com/Expenses]
ON QUEUE [dbo].[ExpenseQueue]
([//Adventure-Works.com/Expenses/ExpenseSubmission]) ;
B. Vytváření služby s více smugami
Následující příklad vytváří službu //Adventure-Works.com/Expenses ve frontě ExpenseQueue . Dialogy zaměřené na tuto službu musí buď následovat smlouvu //Adventure-Works.com/Expenses/ExpenseSubmission , nebo smlouvu //Adventure-Works.com/Expenses/ExpenseProcessing.
CREATE SERVICE [//Adventure-Works.com/Expenses] ON QUEUE ExpenseQueue
([//Adventure-Works.com/Expenses/ExpenseSubmission],
[//Adventure-Works.com/Expenses/ExpenseProcessing]) ;
C. Vytvoření služby bez smluv
Následující příklad vytváří frontu služeb //Adventure-Works.com/Expenses on the ExpenseQueue . Tato služba nemá žádné smluvní informace. Služba tedy může být pouze iniciátorem dialogu.
CREATE SERVICE [//Adventure-Works.com/Expenses] ON QUEUE ExpenseQueue ;
Viz také
ALTER SERVICE (Transact-SQL)
DROP SERVICE (Transact-SQL)
EVENTDATA (Transact-SQL)