Если у вас есть соответствующие разрешения и включен xp_cmdshell, вы можете:
EXEC xp_cmdshell 'md "<path>"';
--...repeat for each node in the path
Если cmdshell отключен, снова при условии наличия соответствующих разрешений вы можете временно включить его, используя sp_configure:
Древняя статья удалена
Не забудьте вернуть его обратно!
В противном случае, почему вы не можете позволить движку поместить файлы базы данных в их расположение по умолчанию? Если вы используете диск, отличный от C :, вам также необходимо убедиться, что указанный диск вообще существует, и разве вы не должны уточнить у пользователя, можно ли размещать эти файлы в другом месте? Если вы выберете какое-либо произвольное расположение, они могут не знать, где можно проверить наличие активных файлов SQL Server.
Вы можете проверить путь по умолчанию, используя xp_regread (недокументированный, не поддерживается) ... они находятся в реестре в качестве ключей DefaultDataDir и DefaultLogDir для экземпляра по умолчанию в разделе:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer
Если это не экземпляр по умолчанию, проверьте эту статью:
http://foxtricks.blogspot.com/2009/06/how-to-determine-default-database-path.html
Вы делаете это просто для того, чтобы вы могли называть ваши MDF / LDF-файлы так, как вы хотите, вместо dbname-data, dbname-log? Если так, то почему? Вы написали сценарии, которые зависят от физического имени файла? Действительно любопытно, какова мотивация этого.