BulkEncryptionDatabase_3.azurepublish.sql 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /*
  2. Deployment script for bulkencryption
  3. This code was generated by a tool.
  4. Changes to this file may cause incorrect behavior and will be lost if
  5. the code is regenerated.
  6. */
  7. GO
  8. SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;
  9. SET NUMERIC_ROUNDABORT OFF;
  10. GO
  11. :setvar DatabaseName "bulkencryption"
  12. :setvar DefaultFilePrefix "bulkencryption"
  13. :setvar DefaultDataPath ""
  14. :setvar DefaultLogPath ""
  15. GO
  16. :on error exit
  17. GO
  18. /*
  19. Detect SQLCMD mode and disable script execution if SQLCMD mode is not supported.
  20. To re-enable the script after enabling SQLCMD mode, execute the following:
  21. SET NOEXEC OFF;
  22. */
  23. :setvar __IsSqlCmdEnabled "True"
  24. GO
  25. IF N'$(__IsSqlCmdEnabled)' NOT LIKE N'True'
  26. BEGIN
  27. PRINT N'SQLCMD mode must be enabled to successfully execute this script.';
  28. SET NOEXEC ON;
  29. END
  30. GO
  31. USE [master];
  32. GO
  33. DROP DATABASE [$(DatabaseName)]
  34. GO
  35. PRINT N'Creating $(DatabaseName)...'
  36. GO
  37. CREATE DATABASE [$(DatabaseName)] COLLATE SQL_Latin1_General_CP1_CI_AS
  38. GO
  39. DECLARE @job_state INT = 0;
  40. DECLARE @index INT = 0;
  41. DECLARE @EscapedDBNameLiteral sysname = N'$(DatabaseName)'
  42. WAITFOR DELAY '00:00:30';
  43. WHILE (@index < 60)
  44. BEGIN
  45. SET @job_state = ISNULL( (SELECT SUM (result) FROM (
  46. SELECT TOP 1 [state] AS result
  47. FROM sys.dm_operation_status WHERE resource_type = 0
  48. AND operation = 'CREATE DATABASE' AND major_resource_id = @EscapedDBNameLiteral AND [state] = 2
  49. ORDER BY start_time DESC
  50. ) r), -1);
  51. SET @index = @index + 1;
  52. IF @job_state = 0 /* pending */ OR @job_state = 1 /* in progress */ OR @job_state = -1 /* job not found */ OR (SELECT [state] FROM sys.databases WHERE name = @EscapedDBNameLiteral) <> 0
  53. WAITFOR DELAY '00:00:30';
  54. ELSE
  55. BREAK;
  56. END
  57. GO