我有一个SQL Server数据库。在SQL Server Management Studio中,我生成了一个数据和模式脚本(任务 - >生成脚本 - > ..等)。
我可以在SQLCmd中生成此脚本(架构和数据)吗?
之前,我使用BackUp和Restore来克隆数据库,但现在我没有权限恢复服务器上的数据库,我需要使用脚本。
--- My code for .bat ---
:: BackUp and restore DB
:: Create BackUp Prod DB
SqlCmd -U <user> -P <pass> -S <ip_MSSQL> -Q "USE <MyDb> EXEC sp_BackupDatabases @backupLocation='<network_drive>', @databaseName='MyDb', @backupType='F'"
:: Copy BackUps from temp folder to D:\BD\
set lpath=<network_drive>\MyDB_FULL_
set rpath=*.BAK
copy %lpath%%rpath% D:\BD\
:: Update/Restore Dev DB from Prod BackUp
SqlCmd -U <user> -P <pass> -S <ip_MSSQL> -Q "DECLARE @Data varchar(100) SET @Data = REPLACE(CONVERT(VARCHAR, GETDATE(),101),'/','') DECLARE @BackupFile varchar(100) SET @BackupFile=N'D:\BD\MyDB_FULL_' + @Data + N'.BAK' RESTORE DATABASE DevMyDb FROM DISK=@BackupFile with move 'MyDB' to 'D:\DB\DevMyDB.mdf', move 'MyDB_log' to 'D:\DB\DevMyDB_log.ldf'"
:: Delete BackUp in temp folder
del <network_drive>\MyDB_FULL_*.BAK /s /q
P.S。对于备份,我使用存储过程 - https://support.microsoft.com/en-us/kb/2019698