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.
Pomocí editoru dotazů v aplikaci SQL Server Management Studio (SSMS) můžete psát a upravovat dotazy jako skripty SQLCMD. Skripty SQLCMD můžete použít ke zpracování systémových příkazů systému Windows a Transact-SQL příkazů ve stejném skriptu.
Povolení režimu SQLCMD
Chcete-li použít editor dotazů k zápisu nebo úpravě skriptů SQLCMD, musíte povolit režim skriptování SQLCMD. Režim SQLCMD není ve výchozím nastavení povolený. Režim skriptování můžete povolit výběrem ikony režimu SQLCMD na panelu nástrojů nebo výběrem režimu SQLCMD z nabídky Dotaz .
Poznámka:
Když povolíte režim SQLCMD, technologie IntelliSense a ladicí program Transact-SQL jsou v editoru dotazů vypnuté.
Skripty SQLCMD v editoru dotazů můžou používat stejné funkce, které používají všechny Transact-SQL skripty. Mezi tyto funkce patří:
- Barevné kódování
- Spouštění skriptů
- Správa zdrojového kódu
- Analýza skriptů
- Plán zobrazení
Povolení skriptování SQLCMD v Editoru dotazů
Pokud chcete zapnout skriptování SQLCMD pro aktivní okno Editoru dotazů, použijte následující postup.
Přepnutí okna editoru dotazů do režimu SQLCMD
V Průzkumníku objektů klikněte pravým tlačítkem myši na server a potom vyberte Nový dotaz , aby se otevřelo nové okno Editoru dotazů.
V nabídce dotazu vyberte režim SQLCMD.
Příkazy SQLCMD se spouští v kontextu editoru dotazů.
Na panelu nástrojů editoru SQL v seznamu Dostupné databáze vyberte
AdventureWorks2025.V okně editoru dotazů zadejte následující příkazy Transact-SQL a
!!DIRpříkaz SQLCMD:SELECT DISTINCT Type FROM Sales.SpecialOffer; GO !!DIR GO SELECT ProductCategoryID, Name FROM Production.ProductCategory; GOStisknutím klávesy F5 spusťte sekci smíšených příkazů Transact-SQL a MS-DOS.
Všimněte si dvou podokna výsledků SQL z prvního a třetího příkazu.
V podokně Výsledky vyberte záložku Zprávy, abyste si zobrazili zprávy ze všech tří příkazů.
(6 row(s) affected)<The directory information>(4 row(s) affected)
Důležité
Když spustíte sqlcmd z příkazového řádku, povolí úplnou interakci s operačním systémem. Při použití editoru dotazů v režimu SQLCMD dávejte pozor, abyste nespustí interaktivní příkazy. Editor dotazů nemůže reagovat na výzvy operačního systému. Další informace o tom, jak spustit SQLCMD z příkazového řádku, naleznete v nástroji sqlcmd.
Povolení skriptování SQLCMD ve výchozím nastavení
Pokud chcete ve výchozím nastavení zapnout skriptování SQLCMD, v nabídce Nástroje vyberte Možnosti, rozbalte položku Spouštění dotazůa SQL Server, vyberte stránku Obecné a potom zaškrtněte políčko Otevřít nové dotazy v režimu SQLCMD.
Psaní a úpravy skriptů SQLCMD
Po povolení režimu skriptování můžete psát příkazy SQLCMD i příkazy Transact-SQL. Platí následující pravidla:
Příkazy SQLCMD musí být prvním příkazem na řádku.
Na každém řádku je povolen pouze jeden příkaz SQLCMD.
Před příkazy SQLCMD můžete použít komentáře a prázdné znaky.
Příkazy SQLCMD uzavřené v komentářových znacích se nespouštějí.
Jednořádkové znaky komentáře jsou dvě pomlčky (
--) a musí se zobrazovat na začátku řádku.Předpona příkazů operačního systému se dvěma vykřičníky (
!!). Příkaz s dvojitými vykřičníky způsobí, že příkaz, který následuje za nimi, se provede pomocí procesoru příkazůcmd.exe. Text za!!je předán jako parametr docmd.exe, takže konečný příkazový řádek se spustí jako:"%SystemRoot%\system32\cmd.exe /c <text after !!>".Pokud chcete jasně rozlišovat mezi příkazy SQLCMD a jazykem Transact-SQL, předponujte všechny příkazy SQLCMD dvojtečku (
:).Příkaz
GOlze použít bez předmluvy nebo před příkazem!!:.Editor dotazů podporuje proměnné prostředí a proměnné, které definujete jako součást skriptu SQLCMD, ale nepodporuje integrované proměnné SQLCMD ani osql . SSMS zpracovává proměnné SQLCMD s rozlišením velikosti písmen. Například
PRINT '$(COMPUTERNAME)'vytvoří správný výsledek, alePRINT '$(ComputerName)'vrátí chybu.
Upozornění
SSMS používá knihovnu SqlClient .NET ke spouštění v běžném režimu a v režimu SQLCMD. Když spustíte dotaz z příkazového řádku, sqlcmd použije zprostředkovatele OLE DB. Vzhledem k tomu, že se můžou použít různé výchozí možnosti, může se při provádění stejného dotazu v režimu SQLCMD uvnitř SSMS zobrazit odlišné chování ve srovnání s režimem SQLCMD v utilitě sqlcmd.
Podporovaná syntaxe SQLCMD
Editor dotazů podporuje následující klíčová slova skriptu SQLCMD:
[!!:]GO[count]!! <command>:exit(statement):Quit:r <filename>:setvar <var> <value>-
:connect server[\instance] [-l login_timeout] [-U user [-P password]]1 :on error [ignore|exit]-
:error <filename>|stderr|stdout2 -
:out <filename>|stderr|stdout2
1 Další informace o :connect příkazu naleznete v příkazy v nástroji sqlcmd.
2 Editor dotazů odešle výstup na kartu Zprávy pro stderr a stdout.
Editor dotazů nepodporuje příkazy SQLCMD, které nejsou zahrnuty do předchozího seznamu. Když spustíte skript, který obsahuje nepodporovaná klíčová slova SQLCMD, editor dotazů tento příkaz ignoruje. Pro každé nepodporované klíčové slovo odešle editor dotazů do cíle následující zprávu:
Ignoring command <ignored_command>
Upozornění
Vzhledem k tomu, že sqlCMD nespustíte z příkazového řádku, existují určitá omezení při spuštění Editoru dotazů v režimu SQLCMD. Parametry příkazového řádku, jako jsou proměnné, nemůžete předávat. Protože editor dotazů nemůže reagovat na výzvy operačního systému, musíte být opatrní, abyste nespustí interaktivní příkazy.
Barevné kódování ve skriptech SQLCMD
Když povolíte skriptování SQLCMD, skripty se barevně zakódují. Barevné kódování pro Transact-SQL klíčová slova zůstává stejné. Příkazy SQLCMD se zobrazí se stínovaným pozadím.
Examples
Následující příklad používá příkaz SQLCMD k vytvoření výstupního souboru s názvem testoutput.txt. Spustí dva příkazy Transact-SQL SELECT a jeden příkaz operačního systému, který vytiskne aktuální adresář. Výsledný soubor obsahuje výstup zprávy z DIR příkazu a výstup výsledků z příkazů Transact-SQL.
:out C:\testoutput.txt
SELECT @@VERSION As 'Server Version';
!!DIR
!!:GO
SELECT @@SERVERNAME AS 'Server Name';
GO
Související obsah
- nástroj sqlcmd