Не уверен насчет готового инструмента, но это достаточно просто сделать с помощью библиотеки SMO (Microsoft.SqlServer.Smo, .SmoEnum, .SqlEnum):
using Microsoft.SqlServer.Management.Smo;
var server = new Server("localhost");
var database = server.Databases["databaseName"];
var transfer = new Transfer(database);
var options = new ScriptingOptions();
// set transfer and options object properties to reflect what you want to script:
// i.e. all tables, indexes, triggers, etc.
options.FileName = "c:\\temp\\databaseName_schema.sql";
transfer.Options = options;
transfer.ScriptTransfer();
Я создал простой инструмент, использующий этот метод, для регенерации сценария создания базы данных моего продукта в рамках этапов предварительной сборки в компоновщике установки.