Mám sadu skriptů, které je třeba spustit v určitém pořadí. Chtěl bych vytvořit „hlavní soubor“, který obsahuje seznam všech ostatních souborů a jejich správné pořadí. V podstatě jako zahrnout soubor z C++ nebo ASP/VBScript.
Pokud používáte SQLCMD , můžete použít :r FileName
zahrnout samostatný soubor .sql.
: r Název_souboru
Analyzuje další příkazy T-SQL a příkazy SQLCMD ze souboru určeného FileName do mezipaměti příkazů. FileName se čte relativně ke spouštěcímu adresáři pro Visual Studio. Soubor je načten a spuštěn poté, co se objeví dávkový terminátor. Můžete zadat více příkazů: r. Soubor může obsahovat jakýkoli příkaz SQLCMD, včetně dávkového terminátoru, který je definován v nabídce Nástroje, Možnosti. Můžete použít: r ve skriptu před nasazením nebo po nasazení pro zahrnutí dalších skriptů.
Ve smyslu starověku C preprocesoři rozhodně ne
Pokud máte sadu souborů s danými absolutními cestami, které chcete zahrnout do bezpodmínečného pořadí, můžete použít nástroj příkazového řádku sqlcmd nebo použít SSMS v sqlcmdmode, jak je uvedeno v @mfredrickson a @Marian.
Ale pokud chcete, aby relativní cesty nebo podmíněné zahrnovaly, musíte použít nějaký wrapper, který volá sqlcmd (nebo jeden z jeho zastaralých předchůdců isql nebo osql).
V současné době pracuji v této situaci a kontroluji a rozšiřuji staré vbs a hta kód. Nejsem úplně šťastný, ale je to pragmatické rozhodnutí. Funguje to a koncový uživatel je doma s grafickým rozhraním hta a není nutná žádná další instalace softwaru.
Pro nový design bych začal přemýšlet o použití WPF a PowerShell k zabalení hovorů sqlcmd, ale u našich současných zákazníků nemohu předpokládat přítomnost PowerShell V2.
V dřívějších dobách jsme pro tento účel psali jednoduché šarže cmd, z nichž se jich stále používá.
Myslím, že existují současné nástroje, zejména ty, které se zaměřují na pracovní postupy, které by zde mohly být vhodné. Nejsem s nimi obeznámen.
Spolu s režim SQLCMD v Management Studio můžete také použít dávkový soubor jako hlavní soubor k uspořádání a zavolání všech vašich souborů sql pomocí obslužný program SQLCMD .
Režim SQLCMD je simulací využití nástroje uvnitř Management Studio, takže mezi režimy není velký rozdíl. Až na to, že někdy dávám přednost spuštění dávek (žádné další otevírání M Studio ... načítání správné db ... atd.). Raději nakonfiguruji vše v dávce, včetně výstupních souborů.
Souhlasím, že je nezbytně zapotřebí preprocesor T-SQL. Vyvinul jsem svůj vlastní v C #, což mi trvalo asi hodinu. Kromě kontroly nad prováděním SQL skriptů mi to také umožňuje mít makra, která vypadají jako skalární UDF a jsou pohodlně použitelná, ale fungují stejně rychle jako inline UDF.
Líbí se mi odpověď bernd_k . V závislosti na tom, jak jste své skripty pojmenovali, jako je například vložení čísla, lze použít SQL Server PowerShell (SQLPS), pokud používáte SQL Server 2008 nebo vyšší. Pak, i kdybyste používali SQL 2005, mohli byste pro rok 2005 využít PowerShell a SMO.
Vedlejší poznámka: Věřím, že SQLCMD bude nakonec zařazen do odpisovaného seznamu a bude nahrazen SQLPS, PowerShell.
Existuje i několik dalších možností.