diff --git a/.gitignore b/.gitignore index 6d6ddaa..e62e94c 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,7 @@ # Other *.bak coverage/ -_sql-database/ +/_sql-database/ dist/ node_modules/ ssc.json diff --git a/docker/index.spec.ts b/docker/index.spec.ts index fb6218e..2468efc 100644 --- a/docker/index.spec.ts +++ b/docker/index.spec.ts @@ -1,8 +1,35 @@ -const snapshot = require('../snapshots/AdventureWorks2017.json'); -const cache = require('../_sql-database/cache.json'); +import { readFileSync, statSync } from 'fs-extra'; +import { glob } from 'glob'; describe('docker', () => { - it('cache should match snapshot', () => { - expect(cache).toEqual(snapshot); + it('file contents should match snapshots', () => { + const getAllFilenames = (folder: string): string[] => { + return glob.sync(folder + '**/*'); + }; + + const snapshots = getAllFilenames( + 'snapshots/AdventureWorks2017/_sql-database/' + ); + const results = getAllFilenames('_sql-database/'); + + // Just in case the glob results aren't in a predictable order + snapshots.sort(); + results.sort(); + + expect(snapshots.length).toEqual(results.length); + + snapshots.map((snapshot, index) => { + const result = results[index]; + + expect(snapshot).toContain(result); + + const stat = statSync(result); + if (stat.isFile()) { + const resultContent = readFileSync(result).toString(); + const snapshotContent = readFileSync(snapshot).toString(); + + expect(resultContent).toEqual(snapshotContent); + } + }); }); }); diff --git a/snapshots/AdventureWorks2017.json b/snapshots/AdventureWorks2017.json index f227909..51eb17d 100644 --- a/snapshots/AdventureWorks2017.json +++ b/snapshots/AdventureWorks2017.json @@ -61,30 +61,30 @@ "./_sql-database/tables/dbo.DatabaseLog.sql": "9b20616aecea60d1132431f20dce0fde9afb31de", "./_sql-database/tables/dbo.ErrorLog.sql": "6c739cf6b1b1aa3961fe170e7d0a0ae923231dc6", "./_sql-database/tables/HumanResources.Department.sql": "4bf0595e675d1c71d990a77fc33d68c396b0d241", - "./_sql-database/tables/HumanResources.Employee.sql": "efb72f408a7abffb1f530000d5dcf5a2ff975df6", - "./_sql-database/tables/HumanResources.EmployeeDepartmentHistory.sql": "ef90daec320d2041e876901451e2eb67b509e014", + "./_sql-database/tables/HumanResources.Employee.sql": "869fd1a890dac547e5ac415b394af65bf5c2056d", + "./_sql-database/tables/HumanResources.EmployeeDepartmentHistory.sql": "2bce1ecb28ad83ec8e2fde23d5f53d1532e422c2", "./_sql-database/tables/HumanResources.EmployeePayHistory.sql": "e678293368b54c34b83cfbdd5ed3dbedc44abbe8", "./_sql-database/tables/HumanResources.JobCandidate.sql": "dd7d9e12a1ae830f413c842bbde6722060272232", "./_sql-database/tables/HumanResources.Shift.sql": "5412bee432ceac402b6fd77c6ecf87aa625bb38f", "./_sql-database/tables/Person.Address.sql": "68680d701dff19b65fef954f220a8533b307404b", - "./_sql-database/tables/Person.AddressType.sql": "8e5a5bfbf1e131930b4140e13093f24def40241a", + "./_sql-database/tables/Person.AddressType.sql": "db20ad02fef4d29f269ee2ad8f0145e9afc2cc93", "./_sql-database/tables/Person.BusinessEntity.sql": "974a196e5c5b127d95e7f85f24ac45e04117684a", "./_sql-database/tables/Person.BusinessEntityAddress.sql": "b8f0dc95ff96356fd546f88027be3ec2549694a5", - "./_sql-database/tables/Person.BusinessEntityContact.sql": "db00db36a8c305369614ccc5b928e8597e3b1cc2", + "./_sql-database/tables/Person.BusinessEntityContact.sql": "037f5207e4d2e6492cc7db5cfdfd47787cce72b5", "./_sql-database/tables/Person.ContactType.sql": "ae76fd3b5a19761acd6957cc95ef81b23bbc0458", "./_sql-database/tables/Person.CountryRegion.sql": "6dcb67e6e55ec55854090e164562551a42eb0880", "./_sql-database/tables/Person.EmailAddress.sql": "e94818c21608b6c16059debc16f29a09befe0f99", "./_sql-database/tables/Person.Password.sql": "a41a0ec2d9436debe18d14814320d64039a6571f", - "./_sql-database/tables/Person.Person.sql": "adfd8437559df08805009a01a639406d7a06c614", + "./_sql-database/tables/Person.Person.sql": "99b4a04c751bcfec7865a1d09b0e79861d5e1302", "./_sql-database/tables/Person.PersonPhone.sql": "aa5de40c666f70eecfc40a3067bfe01de5c8e123", "./_sql-database/tables/Person.PhoneNumberType.sql": "b3f1927d41efef70d3163b872248fe10d59a2836", - "./_sql-database/tables/Person.StateProvince.sql": "7282919a39b919cf793bd7d5ddbc20a817aa418d", + "./_sql-database/tables/Person.StateProvince.sql": "2b39fed01f057f53f21b420e37d3f033d214bbd9", "./_sql-database/tables/Production.BillOfMaterials.sql": "7d64a3f1e814414b679f84a4dc68f33cdf3207c2", "./_sql-database/tables/Production.Culture.sql": "669198dedd761006eab9c95d4c2787b81af382e7", - "./_sql-database/tables/Production.Document.sql": "944cbdb6e94631a1b6a40f646b5b2dc8e19944a7", + "./_sql-database/tables/Production.Document.sql": "1fc68a7ae8d1786ef7d4686bbd6798ef38c39fd5", "./_sql-database/tables/Production.Illustration.sql": "b52688b6f9683af379664a18d369ec37aa0a876b", "./_sql-database/tables/Production.Location.sql": "3925e29b56e538ac8a809e628e10bf131e88c510", - "./_sql-database/tables/Production.Product.sql": "6772a934c8b90450de2593cff0cf08f29badd71f", + "./_sql-database/tables/Production.Product.sql": "faf32aa3aa164bb969326142d0f4681a12bde5cd", "./_sql-database/tables/Production.ProductCategory.sql": "fa70876299e8516c069f23fd487020382bb492dc", "./_sql-database/tables/Production.ProductCostHistory.sql": "2f000a5d847fd588eb0e2731959497c116fe1766", "./_sql-database/tables/Production.ProductDescription.sql": "53200ad11d1c00bb4c5aba33084a19f5d926610a", @@ -92,8 +92,8 @@ "./_sql-database/tables/Production.ProductInventory.sql": "7b7dd3eb81441b115f7dbd3653184b22d2884977", "./_sql-database/tables/Production.ProductListPriceHistory.sql": "43a187a7830aecc7cac2c66679f65b0408812bd7", "./_sql-database/tables/Production.ProductModel.sql": "45044e688a4df4b4145ef29b143ecacc0002d530", - "./_sql-database/tables/Production.ProductModelIllustration.sql": "a0fc4231412400c3778340c9bf591d3ef34bf9ad", - "./_sql-database/tables/Production.ProductModelProductDescriptionCulture.sql": "f7a4713f2c77236a2791f26ecc9e0951fcd2679b", + "./_sql-database/tables/Production.ProductModelIllustration.sql": "35702a9bfabb60d049e1b459e52ebcef6bf9f0ba", + "./_sql-database/tables/Production.ProductModelProductDescriptionCulture.sql": "18839f0e1271aaadfd042934b4c9b71355301eea", "./_sql-database/tables/Production.ProductPhoto.sql": "d7b72993e64484f44bb8932ed4e80a353cff329a", "./_sql-database/tables/Production.ProductProductPhoto.sql": "13698d2287e6db1afbd1bec573381e2227c6cadd", "./_sql-database/tables/Production.ProductReview.sql": "85ef51696acecab21e2d2944f3e9af874c916a90", @@ -102,23 +102,23 @@ "./_sql-database/tables/Production.TransactionHistory.sql": "9a09d00eb017ea790aea36dc2dabcb2f094ecf6f", "./_sql-database/tables/Production.TransactionHistoryArchive.sql": "bfc3780f6a06bccb1855e0f80e95528729a1452a", "./_sql-database/tables/Production.UnitMeasure.sql": "fa9d2d7d7f3765d3b4207f387a00da1017caa2c4", - "./_sql-database/tables/Production.WorkOrder.sql": "2bb7abe8a821dc1186acd6fb48089b7253d84cf5", + "./_sql-database/tables/Production.WorkOrder.sql": "32e16e3790fd167b5d3f95fb491d22f104df5217", "./_sql-database/tables/Production.WorkOrderRouting.sql": "e8bc4941b895aed4a22d72e164149c55a36c00f1", - "./_sql-database/tables/Purchasing.ProductVendor.sql": "5679232c7304bedb60db966e179f2ef2295d98e3", + "./_sql-database/tables/Purchasing.ProductVendor.sql": "9da691fd0de7987569c2b89bb6e50a9590f5a673", "./_sql-database/tables/Purchasing.PurchaseOrderDetail.sql": "82fe42908da1126989ce6ab95870717099922cac", - "./_sql-database/tables/Purchasing.PurchaseOrderHeader.sql": "77c76c3fdecbb4730a97a6d716eef6429478e2d5", + "./_sql-database/tables/Purchasing.PurchaseOrderHeader.sql": "613489231b1a0f1b3975c45a57269714107ccdbc", "./_sql-database/tables/Purchasing.ShipMethod.sql": "5394f2981ad744a8dbaee1a2c38ab71147341b51", "./_sql-database/tables/Purchasing.Vendor.sql": "ced603aa7c11d0fb9d08382789c418063b0e0edd", "./_sql-database/tables/Sales.CountryRegionCurrency.sql": "5622b3c4f006221a6f12a30c4939445e9d9493c6", "./_sql-database/tables/Sales.CreditCard.sql": "f4af312a986ea206311b2cfaa53594be33932cb1", "./_sql-database/tables/Sales.Currency.sql": "fabf07099843b49440dcd19d8ba9ed1076c8f388", "./_sql-database/tables/Sales.CurrencyRate.sql": "5d70f9ddae2217579f68385a51e87d383e22731f", - "./_sql-database/tables/Sales.Customer.sql": "05ef02be43fece57282fcbf4620ef784e77849f5", + "./_sql-database/tables/Sales.Customer.sql": "094a871031dca6359ee69d633e4650109e9fdc24", "./_sql-database/tables/Sales.PersonCreditCard.sql": "d7ad3c50573afa566eea8b81d82c5e3a4cf893d0", - "./_sql-database/tables/Sales.SalesOrderDetail.sql": "f49f8e7285180f1fcb72d62bcb06a220f87c461f", - "./_sql-database/tables/Sales.SalesOrderHeader.sql": "73f740194dbd318306739fa19a9e7f9b61d32268", + "./_sql-database/tables/Sales.SalesOrderDetail.sql": "224f2c8fad11bd509ac433f0f44bb78134951dc8", + "./_sql-database/tables/Sales.SalesOrderHeader.sql": "f4bc38c4b80a9f2a3ba596d2cd964e3aa5a2c9c7", "./_sql-database/tables/Sales.SalesOrderHeaderSalesReason.sql": "73ae5cd408599da33244513ad3b28b7e62c5c5e9", - "./_sql-database/tables/Sales.SalesPerson.sql": "eca6c6e1784db302f77ba4174d8309f1b531ab2f", + "./_sql-database/tables/Sales.SalesPerson.sql": "fa795cef613a61e4a054d97d52fe607bd9545d69", "./_sql-database/tables/Sales.SalesPersonQuotaHistory.sql": "ef550aaf480d195cad77ee64012550d84bfc32f5", "./_sql-database/tables/Sales.SalesReason.sql": "f96124a0f52cdd19f97c33c9509628910e3f7e04", "./_sql-database/tables/Sales.SalesTaxRate.sql": "90a84223ccf918555e12b41dc88206dd27f11398", @@ -127,7 +127,7 @@ "./_sql-database/tables/Sales.ShoppingCartItem.sql": "8206e8481d09d11bc70a9641da950455fe50e154", "./_sql-database/tables/Sales.SpecialOffer.sql": "6a4dd953f1199f84324869d412ddc76b3783e85d", "./_sql-database/tables/Sales.SpecialOfferProduct.sql": "d64c059bc3e4d7f6f5843f7c973d6d36f06100f9", - "./_sql-database/tables/Sales.Store.sql": "2df1f5fcafd6c96952bbebc30303810110c26d12", + "./_sql-database/tables/Sales.Store.sql": "e139180fa8ff7e7989842121398e4fd04405505b", "./_sql-database/types/dbo.AccountNumber.sql": "055ec65e54884c34ea6cb9e054cf550744e6ad97", "./_sql-database/types/dbo.Flag.sql": "79e7e65d23ae0f9c89855c28e7fa12e4ea58575e", "./_sql-database/types/dbo.NameStyle.sql": "f6c4f576d12ee8d600a657f5a803a58932b0d2d5", diff --git a/snapshots/AdventureWorks2017/_sql-database/cache.json b/snapshots/AdventureWorks2017/_sql-database/cache.json new file mode 100644 index 0000000..51eb17d --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/cache.json @@ -0,0 +1,143 @@ +{ + "files": { + "./_sql-database/schemas/dbo.sql": "ab32ab028d124a45f5c4d3c148eaebadb0738cf8", + "./_sql-database/schemas/HumanResources.sql": "bd95f0305ee87484bc9a8a9b6176ade02e70ed11", + "./_sql-database/schemas/Person.sql": "8e55687d62e5e537bd9519ff96a7877db009f19c", + "./_sql-database/schemas/Production.sql": "ddcaa67a5bf9bdf64a67be9191fcf26f5610769e", + "./_sql-database/schemas/Purchasing.sql": "b1a26eaff02db9f89b88a6960f35c973447505cf", + "./_sql-database/schemas/Sales.sql": "9329154240adedb11b53eccc910cafe83b6fbd1f", + "./_sql-database/stored-procedures/dbo.uspGetBillOfMaterials.sql": "0cc00ba82b124428ac91ebc1dc05558d606fbb7f", + "./_sql-database/stored-procedures/dbo.uspGetEmployeeManagers.sql": "218b4be7b510a2c838a1c1daad658b48ef1069d5", + "./_sql-database/stored-procedures/dbo.uspGetManagerEmployees.sql": "b63e47f2dff7c80ccfd0a544ca343ca2a2de5544", + "./_sql-database/stored-procedures/dbo.uspGetWhereUsedProductID.sql": "3a99561f6f1873cbdd9c842d66055ef58462e4c0", + "./_sql-database/stored-procedures/dbo.uspLogError.sql": "838fecb15ec6e45197803b652a22d9a1046124c7", + "./_sql-database/stored-procedures/dbo.uspPrintError.sql": "71bf88dcf933ed08387f73306ab3907a489e4f22", + "./_sql-database/stored-procedures/dbo.uspSearchCandidateResumes.sql": "c4a5f35c64311358d4113d1ac226d0a783141930", + "./_sql-database/stored-procedures/HumanResources.uspUpdateEmployeeHireInfo.sql": "432749be8995c284104c3970b5a7ed0571713dbd", + "./_sql-database/stored-procedures/HumanResources.uspUpdateEmployeeLogin.sql": "a614a10747ce76b0b655837133d8fddaf5efba3f", + "./_sql-database/stored-procedures/HumanResources.uspUpdateEmployeePersonalInfo.sql": "ad9e9ab3e22e8053ace33e69f77def6ef555a039", + "./_sql-database/views/Person.vAdditionalContactInfo.sql": "b83438a64db91e3aa8674646d279af1b06fc34a9", + "./_sql-database/views/HumanResources.vEmployee.sql": "7c6f1ada004551d5c74ee966904d8333ac01c0b2", + "./_sql-database/views/HumanResources.vEmployeeDepartment.sql": "3a22df2651bbb36691096e40d5488e7d67a428f3", + "./_sql-database/views/HumanResources.vEmployeeDepartmentHistory.sql": "ad108190c5c840a8e131067b3a6290822418686d", + "./_sql-database/views/Sales.vIndividualCustomer.sql": "3ac79fd6538a57100ae25df79b62bd7a9bdb04e1", + "./_sql-database/views/HumanResources.vJobCandidate.sql": "7eb4680596d0b4052fc089111e9174ef0677ae03", + "./_sql-database/views/HumanResources.vJobCandidateEducation.sql": "c1ad5033a546f9435e736f660a766d6ca517f26c", + "./_sql-database/views/HumanResources.vJobCandidateEmployment.sql": "0ea15dcedeb8fc13734aa4786d94c63b4ec4dd13", + "./_sql-database/views/Sales.vPersonDemographics.sql": "6c2fb36428ca6b091f7f6e78d232e881bd784d64", + "./_sql-database/views/Production.vProductAndDescription.sql": "14915893e8c2fabe182942fee1f64f5eed5eea6b", + "./_sql-database/views/Production.vProductModelCatalogDescription.sql": "518931fcc28566ff2b659c1aecead08c8344294f", + "./_sql-database/views/Production.vProductModelInstructions.sql": "76f224bc7757ffd0100b9f8936601760b239df07", + "./_sql-database/views/Sales.vSalesPerson.sql": "037edfed2f6f286113aa49429c2ea46cdc9a8532", + "./_sql-database/views/Sales.vSalesPersonSalesByFiscalYears.sql": "08f1cf832612ce4ad2aea277b3545059fc903401", + "./_sql-database/views/Person.vStateProvinceCountryRegion.sql": "79c71e00f6a08115314b992fc4453e42d84c7cf7", + "./_sql-database/views/Sales.vStoreWithAddresses.sql": "a8e74cd95afd84b908daff277efaa1cafcc6130d", + "./_sql-database/views/Sales.vStoreWithContacts.sql": "0352d850146aa2168cfcbda8bff3eee3e34b5f8c", + "./_sql-database/views/Sales.vStoreWithDemographics.sql": "77ce7090441d4c81c110c8f73bac6550d405fa7d", + "./_sql-database/views/Purchasing.vVendorWithAddresses.sql": "19d027ce6d9c4f4e1829950602591bf536ab3dcf", + "./_sql-database/views/Purchasing.vVendorWithContacts.sql": "00d9b8402624bd8680fc2d475e91c20f228693bc", + "./_sql-database/functions/dbo.ufnGetAccountingEndDate.sql": "fe57d91d8a800862ae73a4c5163f5dd3409f1d63", + "./_sql-database/functions/dbo.ufnGetAccountingStartDate.sql": "169fd6daa2164db963470e844889a441f8cb778e", + "./_sql-database/functions/dbo.ufnGetContactInformation.sql": "33213843f20b7401d9f0ba579f75db327b417c35", + "./_sql-database/functions/dbo.ufnGetDocumentStatusText.sql": "fcc5e1c2313bff7df571ee65680364eff13e7b7e", + "./_sql-database/functions/dbo.ufnGetProductDealerPrice.sql": "a6a08d34ea4be9b177de0b6e0a247ffe3b751f57", + "./_sql-database/functions/dbo.ufnGetProductListPrice.sql": "c1574f35ae403181c47c6979ce550d10791677d7", + "./_sql-database/functions/dbo.ufnGetProductStandardCost.sql": "0dfb45fff6f317a665d00b52eda2eb10563c8bf4", + "./_sql-database/functions/dbo.ufnGetPurchaseOrderStatusText.sql": "b495457c121389dadd8b9ee89aa247a0fa2f2890", + "./_sql-database/functions/dbo.ufnGetSalesOrderStatusText.sql": "80da881ebc6a96fcdef85d2171f41db1bdb917eb", + "./_sql-database/functions/dbo.ufnGetStock.sql": "27cc114a95bbdcfb9d5665a48d98f61561b8a2b6", + "./_sql-database/functions/dbo.ufnLeadingZeros.sql": "47ccc6e15ba6110a0f8806068674ac721195e752", + "./_sql-database/triggers/HumanResources.dEmployee.sql": "1dc87b4bf7c91a029d8a752c9d90bf84fa6ba7da", + "./_sql-database/triggers/Purchasing.dVendor.sql": "167b9ad6d1122f4e1c3dcb4dd652f1cc6a391143", + "./_sql-database/triggers/Sales.iduSalesOrderDetail.sql": "f8c5bc6596ce6ddb8be8fa89b39f5a9041e5e899", + "./_sql-database/triggers/Purchasing.iPurchaseOrderDetail.sql": "8e2f85e50cd5a3e7122b203c55cb9a515bba85df", + "./_sql-database/triggers/Person.iuPerson.sql": "940660a7e53f984389ad4ad0746f7d21e933084d", + "./_sql-database/triggers/Production.iWorkOrder.sql": "7c087ed26dcfad01fcc39f1d8cf579d97ad9f891", + "./_sql-database/triggers/Purchasing.uPurchaseOrderDetail.sql": "05d927aecfd03e2aa8c41b9a5a7af23387400a9f", + "./_sql-database/triggers/Purchasing.uPurchaseOrderHeader.sql": "1ead0a3e5d39e5a35be293ba730af183e817619f", + "./_sql-database/triggers/Sales.uSalesOrderHeader.sql": "dff5943e51d3b3003961d90557b37e6c8bda822a", + "./_sql-database/triggers/Production.uWorkOrder.sql": "f43cfdc4c456b6e846d515ade5295682d4ec3fca", + "./_sql-database/tables/dbo.AWBuildVersion.sql": "29c80eba0303f1a759266e3cf4c5b330bf28bb7b", + "./_sql-database/tables/dbo.DatabaseLog.sql": "9b20616aecea60d1132431f20dce0fde9afb31de", + "./_sql-database/tables/dbo.ErrorLog.sql": "6c739cf6b1b1aa3961fe170e7d0a0ae923231dc6", + "./_sql-database/tables/HumanResources.Department.sql": "4bf0595e675d1c71d990a77fc33d68c396b0d241", + "./_sql-database/tables/HumanResources.Employee.sql": "869fd1a890dac547e5ac415b394af65bf5c2056d", + "./_sql-database/tables/HumanResources.EmployeeDepartmentHistory.sql": "2bce1ecb28ad83ec8e2fde23d5f53d1532e422c2", + "./_sql-database/tables/HumanResources.EmployeePayHistory.sql": "e678293368b54c34b83cfbdd5ed3dbedc44abbe8", + "./_sql-database/tables/HumanResources.JobCandidate.sql": "dd7d9e12a1ae830f413c842bbde6722060272232", + "./_sql-database/tables/HumanResources.Shift.sql": "5412bee432ceac402b6fd77c6ecf87aa625bb38f", + "./_sql-database/tables/Person.Address.sql": "68680d701dff19b65fef954f220a8533b307404b", + "./_sql-database/tables/Person.AddressType.sql": "db20ad02fef4d29f269ee2ad8f0145e9afc2cc93", + "./_sql-database/tables/Person.BusinessEntity.sql": "974a196e5c5b127d95e7f85f24ac45e04117684a", + "./_sql-database/tables/Person.BusinessEntityAddress.sql": "b8f0dc95ff96356fd546f88027be3ec2549694a5", + "./_sql-database/tables/Person.BusinessEntityContact.sql": "037f5207e4d2e6492cc7db5cfdfd47787cce72b5", + "./_sql-database/tables/Person.ContactType.sql": "ae76fd3b5a19761acd6957cc95ef81b23bbc0458", + "./_sql-database/tables/Person.CountryRegion.sql": "6dcb67e6e55ec55854090e164562551a42eb0880", + "./_sql-database/tables/Person.EmailAddress.sql": "e94818c21608b6c16059debc16f29a09befe0f99", + "./_sql-database/tables/Person.Password.sql": "a41a0ec2d9436debe18d14814320d64039a6571f", + "./_sql-database/tables/Person.Person.sql": "99b4a04c751bcfec7865a1d09b0e79861d5e1302", + "./_sql-database/tables/Person.PersonPhone.sql": "aa5de40c666f70eecfc40a3067bfe01de5c8e123", + "./_sql-database/tables/Person.PhoneNumberType.sql": "b3f1927d41efef70d3163b872248fe10d59a2836", + "./_sql-database/tables/Person.StateProvince.sql": "2b39fed01f057f53f21b420e37d3f033d214bbd9", + "./_sql-database/tables/Production.BillOfMaterials.sql": "7d64a3f1e814414b679f84a4dc68f33cdf3207c2", + "./_sql-database/tables/Production.Culture.sql": "669198dedd761006eab9c95d4c2787b81af382e7", + "./_sql-database/tables/Production.Document.sql": "1fc68a7ae8d1786ef7d4686bbd6798ef38c39fd5", + "./_sql-database/tables/Production.Illustration.sql": "b52688b6f9683af379664a18d369ec37aa0a876b", + "./_sql-database/tables/Production.Location.sql": "3925e29b56e538ac8a809e628e10bf131e88c510", + "./_sql-database/tables/Production.Product.sql": "faf32aa3aa164bb969326142d0f4681a12bde5cd", + "./_sql-database/tables/Production.ProductCategory.sql": "fa70876299e8516c069f23fd487020382bb492dc", + "./_sql-database/tables/Production.ProductCostHistory.sql": "2f000a5d847fd588eb0e2731959497c116fe1766", + "./_sql-database/tables/Production.ProductDescription.sql": "53200ad11d1c00bb4c5aba33084a19f5d926610a", + "./_sql-database/tables/Production.ProductDocument.sql": "0bc9e98df535489220831e319911a3e91f37af84", + "./_sql-database/tables/Production.ProductInventory.sql": "7b7dd3eb81441b115f7dbd3653184b22d2884977", + "./_sql-database/tables/Production.ProductListPriceHistory.sql": "43a187a7830aecc7cac2c66679f65b0408812bd7", + "./_sql-database/tables/Production.ProductModel.sql": "45044e688a4df4b4145ef29b143ecacc0002d530", + "./_sql-database/tables/Production.ProductModelIllustration.sql": "35702a9bfabb60d049e1b459e52ebcef6bf9f0ba", + "./_sql-database/tables/Production.ProductModelProductDescriptionCulture.sql": "18839f0e1271aaadfd042934b4c9b71355301eea", + "./_sql-database/tables/Production.ProductPhoto.sql": "d7b72993e64484f44bb8932ed4e80a353cff329a", + "./_sql-database/tables/Production.ProductProductPhoto.sql": "13698d2287e6db1afbd1bec573381e2227c6cadd", + "./_sql-database/tables/Production.ProductReview.sql": "85ef51696acecab21e2d2944f3e9af874c916a90", + "./_sql-database/tables/Production.ProductSubcategory.sql": "4a42eb49408d68c684c801fdbf609a3226e2b35b", + "./_sql-database/tables/Production.ScrapReason.sql": "938430d791716420e4b87daf758fc33b7775f31e", + "./_sql-database/tables/Production.TransactionHistory.sql": "9a09d00eb017ea790aea36dc2dabcb2f094ecf6f", + "./_sql-database/tables/Production.TransactionHistoryArchive.sql": "bfc3780f6a06bccb1855e0f80e95528729a1452a", + "./_sql-database/tables/Production.UnitMeasure.sql": "fa9d2d7d7f3765d3b4207f387a00da1017caa2c4", + "./_sql-database/tables/Production.WorkOrder.sql": "32e16e3790fd167b5d3f95fb491d22f104df5217", + "./_sql-database/tables/Production.WorkOrderRouting.sql": "e8bc4941b895aed4a22d72e164149c55a36c00f1", + "./_sql-database/tables/Purchasing.ProductVendor.sql": "9da691fd0de7987569c2b89bb6e50a9590f5a673", + "./_sql-database/tables/Purchasing.PurchaseOrderDetail.sql": "82fe42908da1126989ce6ab95870717099922cac", + "./_sql-database/tables/Purchasing.PurchaseOrderHeader.sql": "613489231b1a0f1b3975c45a57269714107ccdbc", + "./_sql-database/tables/Purchasing.ShipMethod.sql": "5394f2981ad744a8dbaee1a2c38ab71147341b51", + "./_sql-database/tables/Purchasing.Vendor.sql": "ced603aa7c11d0fb9d08382789c418063b0e0edd", + "./_sql-database/tables/Sales.CountryRegionCurrency.sql": "5622b3c4f006221a6f12a30c4939445e9d9493c6", + "./_sql-database/tables/Sales.CreditCard.sql": "f4af312a986ea206311b2cfaa53594be33932cb1", + "./_sql-database/tables/Sales.Currency.sql": "fabf07099843b49440dcd19d8ba9ed1076c8f388", + "./_sql-database/tables/Sales.CurrencyRate.sql": "5d70f9ddae2217579f68385a51e87d383e22731f", + "./_sql-database/tables/Sales.Customer.sql": "094a871031dca6359ee69d633e4650109e9fdc24", + "./_sql-database/tables/Sales.PersonCreditCard.sql": "d7ad3c50573afa566eea8b81d82c5e3a4cf893d0", + "./_sql-database/tables/Sales.SalesOrderDetail.sql": "224f2c8fad11bd509ac433f0f44bb78134951dc8", + "./_sql-database/tables/Sales.SalesOrderHeader.sql": "f4bc38c4b80a9f2a3ba596d2cd964e3aa5a2c9c7", + "./_sql-database/tables/Sales.SalesOrderHeaderSalesReason.sql": "73ae5cd408599da33244513ad3b28b7e62c5c5e9", + "./_sql-database/tables/Sales.SalesPerson.sql": "fa795cef613a61e4a054d97d52fe607bd9545d69", + "./_sql-database/tables/Sales.SalesPersonQuotaHistory.sql": "ef550aaf480d195cad77ee64012550d84bfc32f5", + "./_sql-database/tables/Sales.SalesReason.sql": "f96124a0f52cdd19f97c33c9509628910e3f7e04", + "./_sql-database/tables/Sales.SalesTaxRate.sql": "90a84223ccf918555e12b41dc88206dd27f11398", + "./_sql-database/tables/Sales.SalesTerritory.sql": "08b85a0de37219f9490188427a94436edaeb6c2f", + "./_sql-database/tables/Sales.SalesTerritoryHistory.sql": "2cca90321c0428b1614453f9cf821a1a37d51547", + "./_sql-database/tables/Sales.ShoppingCartItem.sql": "8206e8481d09d11bc70a9641da950455fe50e154", + "./_sql-database/tables/Sales.SpecialOffer.sql": "6a4dd953f1199f84324869d412ddc76b3783e85d", + "./_sql-database/tables/Sales.SpecialOfferProduct.sql": "d64c059bc3e4d7f6f5843f7c973d6d36f06100f9", + "./_sql-database/tables/Sales.Store.sql": "e139180fa8ff7e7989842121398e4fd04405505b", + "./_sql-database/types/dbo.AccountNumber.sql": "055ec65e54884c34ea6cb9e054cf550744e6ad97", + "./_sql-database/types/dbo.Flag.sql": "79e7e65d23ae0f9c89855c28e7fa12e4ea58575e", + "./_sql-database/types/dbo.NameStyle.sql": "f6c4f576d12ee8d600a657f5a803a58932b0d2d5", + "./_sql-database/types/dbo.Name.sql": "63b77aab82230cf5613ef06421329e9e0d53028e", + "./_sql-database/types/dbo.OrderNumber.sql": "b5b7741933db9658ad02816652109c4abdbaa4ca", + "./_sql-database/types/dbo.Phone.sql": "4a3b82ce5e309f44354a7694e453ca78dfae0427", + "./_sql-database/data/Person.AddressType.sql": "b4b114619f8775ab9f1a99a1a33aee3e87968456", + "./_sql-database/data/Person.ContactType.sql": "6c5a092b5a8ba36459789da8c8c1dcd09b2fe0a0", + "./_sql-database/data/Person.CountryRegion.sql": "50215c0a214eb20e6882329ff26b0a839d3e2625", + "./_sql-database/data/Person.PhoneNumberType.sql": "49561e8b0201f6d869fdc3b034332b656e02aa30", + "./_sql-database/data/Purchasing.ShipMethod.sql": "718cd7615faa5c9915b9d8bee486eb79343ab2fd" + } +} diff --git a/snapshots/AdventureWorks2017/_sql-database/data/Person.AddressType.sql b/snapshots/AdventureWorks2017/_sql-database/data/Person.AddressType.sql new file mode 100644 index 0000000..a5f20eb --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/data/Person.AddressType.sql @@ -0,0 +1,12 @@ +TRUNCATE TABLE [Person].[AddressType] + +SET IDENTITY_INSERT [Person].[AddressType] ON + +INSERT INTO [Person].[AddressType] (AddressTypeID, Name, rowguid, ModifiedDate) VALUES (1, 'Billing', 'B84F78B1-4EFE-4A0E-8CB7-70E9F112F886', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[AddressType] (AddressTypeID, Name, rowguid, ModifiedDate) VALUES (2, 'Home', '41BC2FF6-F0FC-475F-8EB9-CEC0805AA0F2', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[AddressType] (AddressTypeID, Name, rowguid, ModifiedDate) VALUES (3, 'Main Office', '8EEEC28C-07A2-4FB9-AD0A-42D4A0BBC575', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[AddressType] (AddressTypeID, Name, rowguid, ModifiedDate) VALUES (4, 'Primary', '24CB3088-4345-47C4-86C5-17B535133D1E', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[AddressType] (AddressTypeID, Name, rowguid, ModifiedDate) VALUES (5, 'Shipping', 'B29DA3F8-19A3-47DA-9DAA-15C84F4A83A5', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[AddressType] (AddressTypeID, Name, rowguid, ModifiedDate) VALUES (6, 'Archive', 'A67F238A-5BA2-444B-966C-0467ED9C427F', '2008-04-30T00:00:00.000Z') + +SET IDENTITY_INSERT [Person].[AddressType] OFF \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/data/Person.ContactType.sql b/snapshots/AdventureWorks2017/_sql-database/data/Person.ContactType.sql new file mode 100644 index 0000000..95b1aad --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/data/Person.ContactType.sql @@ -0,0 +1,26 @@ +TRUNCATE TABLE [Person].[ContactType] + +SET IDENTITY_INSERT [Person].[ContactType] ON + +INSERT INTO [Person].[ContactType] (ContactTypeID, Name, ModifiedDate) VALUES (1, 'Accounting Manager', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[ContactType] (ContactTypeID, Name, ModifiedDate) VALUES (2, 'Assistant Sales Agent', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[ContactType] (ContactTypeID, Name, ModifiedDate) VALUES (3, 'Assistant Sales Representative', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[ContactType] (ContactTypeID, Name, ModifiedDate) VALUES (4, 'Coordinator Foreign Markets', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[ContactType] (ContactTypeID, Name, ModifiedDate) VALUES (5, 'Export Administrator', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[ContactType] (ContactTypeID, Name, ModifiedDate) VALUES (6, 'International Marketing Manager', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[ContactType] (ContactTypeID, Name, ModifiedDate) VALUES (7, 'Marketing Assistant', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[ContactType] (ContactTypeID, Name, ModifiedDate) VALUES (8, 'Marketing Manager', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[ContactType] (ContactTypeID, Name, ModifiedDate) VALUES (9, 'Marketing Representative', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[ContactType] (ContactTypeID, Name, ModifiedDate) VALUES (10, 'Order Administrator', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[ContactType] (ContactTypeID, Name, ModifiedDate) VALUES (11, 'Owner', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[ContactType] (ContactTypeID, Name, ModifiedDate) VALUES (12, 'Owner/Marketing Assistant', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[ContactType] (ContactTypeID, Name, ModifiedDate) VALUES (13, 'Product Manager', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[ContactType] (ContactTypeID, Name, ModifiedDate) VALUES (14, 'Purchasing Agent', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[ContactType] (ContactTypeID, Name, ModifiedDate) VALUES (15, 'Purchasing Manager', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[ContactType] (ContactTypeID, Name, ModifiedDate) VALUES (16, 'Regional Account Representative', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[ContactType] (ContactTypeID, Name, ModifiedDate) VALUES (17, 'Sales Agent', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[ContactType] (ContactTypeID, Name, ModifiedDate) VALUES (18, 'Sales Associate', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[ContactType] (ContactTypeID, Name, ModifiedDate) VALUES (19, 'Sales Manager', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[ContactType] (ContactTypeID, Name, ModifiedDate) VALUES (20, 'Sales Representative', '2008-04-30T00:00:00.000Z') + +SET IDENTITY_INSERT [Person].[ContactType] OFF \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/data/Person.CountryRegion.sql b/snapshots/AdventureWorks2017/_sql-database/data/Person.CountryRegion.sql new file mode 100644 index 0000000..6f45089 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/data/Person.CountryRegion.sql @@ -0,0 +1,240 @@ +TRUNCATE TABLE [Person].[CountryRegion] + +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('AD', 'Andorra', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('AE', 'United Arab Emirates', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('AF', 'Afghanistan', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('AG', 'Antigua and Barbuda', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('AI', 'Anguilla', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('AL', 'Albania', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('AM', 'Armenia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('AN', 'Netherlands Antilles', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('AO', 'Angola', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('AQ', 'Antarctica', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('AR', 'Argentina', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('AS', 'American Samoa', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('AT', 'Austria', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('AU', 'Australia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('AW', 'Aruba', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('AZ', 'Azerbaijan', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('BA', 'Bosnia and Herzegovina', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('BB', 'Barbados', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('BD', 'Bangladesh', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('BE', 'Belgium', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('BF', 'Burkina Faso', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('BG', 'Bulgaria', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('BH', 'Bahrain', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('BI', 'Burundi', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('BJ', 'Benin', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('BM', 'Bermuda', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('BN', 'Brunei', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('BO', 'Bolivia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('BR', 'Brazil', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('BS', 'Bahamas, The', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('BT', 'Bhutan', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('BV', 'Bouvet Island', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('BW', 'Botswana', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('BY', 'Belarus', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('BZ', 'Belize', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('CA', 'Canada', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('CC', 'Cocos (Keeling) Islands', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('CD', 'Congo (DRC)', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('CF', 'Central African Republic', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('CG', 'Congo', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('CH', 'Switzerland', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('CI', 'Côte d''Ivoire', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('CK', 'Cook Islands', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('CL', 'Chile', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('CM', 'Cameroon', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('CN', 'China', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('CO', 'Colombia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('CR', 'Costa Rica', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('CS', 'Serbia and Montenegro', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('CU', 'Cuba', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('CV', 'Cape Verde', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('CX', 'Christmas Island', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('CY', 'Cyprus', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('CZ', 'Czech Republic', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('DE', 'Germany', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('DJ', 'Djibouti', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('DK', 'Denmark', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('DM', 'Dominica', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('DO', 'Dominican Republic', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('DZ', 'Algeria', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('EC', 'Ecuador', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('EE', 'Estonia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('EG', 'Egypt', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('ER', 'Eritrea', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('ES', 'Spain', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('ET', 'Ethiopia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('FI', 'Finland', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('FJ', 'Fiji Islands', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('FK', 'Falkland Islands (Islas Malvinas)', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('FM', 'Micronesia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('FO', 'Faroe Islands', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('FR', 'France', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('GA', 'Gabon', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('GB', 'United Kingdom', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('GD', 'Grenada', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('GE', 'Georgia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('GF', 'French Guiana', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('GH', 'Ghana', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('GI', 'Gibraltar', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('GL', 'Greenland', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('GM', 'Gambia, The', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('GN', 'Guinea', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('GP', 'Guadeloupe', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('GQ', 'Equatorial Guinea', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('GR', 'Greece', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('GS', 'South Georgia and the South Sandwich Islands', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('GT', 'Guatemala', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('GU', 'Guam', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('GW', 'Guinea-Bissau', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('GY', 'Guyana', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('HK', 'Hong Kong SAR', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('HM', 'Heard Island and McDonald Islands', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('HN', 'Honduras', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('HR', 'Croatia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('HT', 'Haiti', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('HU', 'Hungary', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('ID', 'Indonesia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('IE', 'Ireland', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('IL', 'Israel', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('IN', 'India', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('IO', 'British Indian Ocean Territory', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('IQ', 'Iraq', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('IR', 'Iran', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('IS', 'Iceland', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('IT', 'Italy', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('JM', 'Jamaica', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('JO', 'Jordan', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('JP', 'Japan', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('KE', 'Kenya', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('KG', 'Kyrgyzstan', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('KH', 'Cambodia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('KI', 'Kiribati', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('KM', 'Comoros', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('KN', 'Saint Kitts and Nevis', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('KP', 'North Korea', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('KR', 'Korea', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('KW', 'Kuwait', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('KY', 'Cayman Islands', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('KZ', 'Kazakhstan', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('LA', 'Laos', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('LB', 'Lebanon', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('LC', 'Saint Lucia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('LI', 'Liechtenstein', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('LK', 'Sri Lanka', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('LR', 'Liberia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('LS', 'Lesotho', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('LT', 'Lithuania', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('LU', 'Luxembourg', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('LV', 'Latvia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('LY', 'Libya', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('MA', 'Morocco', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('MC', 'Monaco', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('MD', 'Moldova', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('MG', 'Madagascar', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('MH', 'Marshall Islands', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('MK', 'Macedonia, Former Yugoslav Republic of', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('ML', 'Mali', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('MM', 'Myanmar', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('MN', 'Mongolia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('MO', 'Macao SAR', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('MP', 'Northern Mariana Islands', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('MQ', 'Martinique', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('MR', 'Mauritania', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('MS', 'Montserrat', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('MT', 'Malta', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('MU', 'Mauritius', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('MV', 'Maldives', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('MW', 'Malawi', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('MX', 'Mexico', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('MY', 'Malaysia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('MZ', 'Mozambique', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('NA', 'Namibia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('NC', 'New Caledonia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('NE', 'Niger', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('NF', 'Norfolk Island', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('NG', 'Nigeria', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('NI', 'Nicaragua', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('NL', 'Netherlands', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('NO', 'Norway', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('NP', 'Nepal', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('NR', 'Nauru', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('NU', 'Niue', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('NZ', 'New Zealand', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('OM', 'Oman', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('PA', 'Panama', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('PE', 'Peru', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('PF', 'French Polynesia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('PG', 'Papua New Guinea', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('PH', 'Philippines', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('PK', 'Pakistan', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('PL', 'Poland', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('PM', 'Saint Pierre and Miquelon', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('PN', 'Pitcairn Islands', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('PR', 'Puerto Rico', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('PS', 'Palestinian Authority', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('PT', 'Portugal', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('PW', 'Palau', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('PY', 'Paraguay', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('QA', 'Qatar', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('RE', 'Réunion', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('RO', 'Romania', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('RU', 'Russia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('RW', 'Rwanda', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('SA', 'Saudi Arabia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('SB', 'Solomon Islands', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('SC', 'Seychelles', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('SD', 'Sudan', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('SE', 'Sweden', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('SG', 'Singapore', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('SH', 'Saint Helena', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('SI', 'Slovenia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('SJ', 'Svalbard and Jan Mayen', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('SK', 'Slovakia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('SL', 'Sierra Leone', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('SM', 'San Marino', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('SN', 'Senegal', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('SO', 'Somalia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('SR', 'Suriname', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('ST', 'São Tomé and Príncipe', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('SV', 'El Salvador', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('SY', 'Syria', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('SZ', 'Swaziland', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('TC', 'Turks and Caicos Islands', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('TD', 'Chad', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('TF', 'French Southern and Antarctic Lands', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('TG', 'Togo', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('TH', 'Thailand', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('TJ', 'Tajikistan', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('TK', 'Tokelau', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('TL', 'Timor-Leste', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('TM', 'Turkmenistan', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('TN', 'Tunisia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('TO', 'Tonga', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('TR', 'Turkey', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('TT', 'Trinidad and Tobago', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('TV', 'Tuvalu', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('TW', 'Taiwan', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('TZ', 'Tanzania', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('UA', 'Ukraine', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('UG', 'Uganda', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('UM', 'U.S. Minor Outlying Islands', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('US', 'United States', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('UY', 'Uruguay', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('UZ', 'Uzbekistan', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('VA', 'Vatican City', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('VC', 'Saint Vincent and the Grenadine', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('VE', 'Venezuela', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('VG', 'Virgin Islands, British', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('VI', 'Virgin Islands, U.S.', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('VN', 'Vietnam', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('VU', 'Vanuatu', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('WF', 'Wallis and Futuna', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('WS', 'Samoa', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('YE', 'Yemen', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('YT', 'Mayotte', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('ZA', 'South Africa', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('ZM', 'Zambia', '2008-04-30T00:00:00.000Z') +INSERT INTO [Person].[CountryRegion] (CountryRegionCode, Name, ModifiedDate) VALUES ('ZW', 'Zimbabwe', '2008-04-30T00:00:00.000Z') \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/data/Person.PhoneNumberType.sql b/snapshots/AdventureWorks2017/_sql-database/data/Person.PhoneNumberType.sql new file mode 100644 index 0000000..d46dd5e --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/data/Person.PhoneNumberType.sql @@ -0,0 +1,9 @@ +TRUNCATE TABLE [Person].[PhoneNumberType] + +SET IDENTITY_INSERT [Person].[PhoneNumberType] ON + +INSERT INTO [Person].[PhoneNumberType] (PhoneNumberTypeID, Name, ModifiedDate) VALUES (1, 'Cell', '2017-12-13T13:19:22.273Z') +INSERT INTO [Person].[PhoneNumberType] (PhoneNumberTypeID, Name, ModifiedDate) VALUES (2, 'Home', '2017-12-13T13:19:22.273Z') +INSERT INTO [Person].[PhoneNumberType] (PhoneNumberTypeID, Name, ModifiedDate) VALUES (3, 'Work', '2017-12-13T13:19:22.273Z') + +SET IDENTITY_INSERT [Person].[PhoneNumberType] OFF \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/data/Purchasing.ShipMethod.sql b/snapshots/AdventureWorks2017/_sql-database/data/Purchasing.ShipMethod.sql new file mode 100644 index 0000000..685a032 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/data/Purchasing.ShipMethod.sql @@ -0,0 +1,11 @@ +TRUNCATE TABLE [Purchasing].[ShipMethod] + +SET IDENTITY_INSERT [Purchasing].[ShipMethod] ON + +INSERT INTO [Purchasing].[ShipMethod] (ShipMethodID, Name, ShipBase, ShipRate, rowguid, ModifiedDate) VALUES (1, 'XRQ - TRUCK GROUND', 3.95, 0.99, '6BE756D9-D7BE-4463-8F2C-AE60C710D606', '2008-04-30T00:00:00.000Z') +INSERT INTO [Purchasing].[ShipMethod] (ShipMethodID, Name, ShipBase, ShipRate, rowguid, ModifiedDate) VALUES (2, 'ZY - EXPRESS', 9.95, 1.99, '3455079B-F773-4DC6-8F1E-2A58649C4AB8', '2008-04-30T00:00:00.000Z') +INSERT INTO [Purchasing].[ShipMethod] (ShipMethodID, Name, ShipBase, ShipRate, rowguid, ModifiedDate) VALUES (3, 'OVERSEAS - DELUXE', 29.95, 2.99, '22F4E461-28CF-4ACE-A980-F686CF112EC8', '2008-04-30T00:00:00.000Z') +INSERT INTO [Purchasing].[ShipMethod] (ShipMethodID, Name, ShipBase, ShipRate, rowguid, ModifiedDate) VALUES (4, 'OVERNIGHT J-FAST', 21.95, 1.29, '107E8356-E7A8-463D-B60C-079FFF467F3F', '2008-04-30T00:00:00.000Z') +INSERT INTO [Purchasing].[ShipMethod] (ShipMethodID, Name, ShipBase, ShipRate, rowguid, ModifiedDate) VALUES (5, 'CARGO TRANSPORT 5', 8.99, 1.49, 'B166019A-B134-4E76-B957-2B0490C610ED', '2008-04-30T00:00:00.000Z') + +SET IDENTITY_INSERT [Purchasing].[ShipMethod] OFF \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetAccountingEndDate.sql b/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetAccountingEndDate.sql new file mode 100644 index 0000000..c9c9206 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetAccountingEndDate.sql @@ -0,0 +1,10 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[ufnGetAccountingEndDate]') AND type = 'FN') +DROP FUNCTION [dbo].[ufnGetAccountingEndDate] +GO + +CREATE FUNCTION [dbo].[ufnGetAccountingEndDate]() +RETURNS [datetime] +AS +BEGIN + RETURN DATEADD(millisecond, -2, CONVERT(datetime, '20040701', 112)); +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetAccountingStartDate.sql b/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetAccountingStartDate.sql new file mode 100644 index 0000000..4842ea4 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetAccountingStartDate.sql @@ -0,0 +1,10 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[ufnGetAccountingStartDate]') AND type = 'FN') +DROP FUNCTION [dbo].[ufnGetAccountingStartDate] +GO + +CREATE FUNCTION [dbo].[ufnGetAccountingStartDate]() +RETURNS [datetime] +AS +BEGIN + RETURN CONVERT(datetime, '20030701', 112); +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetContactInformation.sql b/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetContactInformation.sql new file mode 100644 index 0000000..9c01177 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetContactInformation.sql @@ -0,0 +1,73 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[ufnGetContactInformation]') AND type = 'TF') +DROP FUNCTION [dbo].[ufnGetContactInformation] +GO + +CREATE FUNCTION [dbo].[ufnGetContactInformation](@PersonID int) +RETURNS @retContactInformation TABLE +( + -- Columns returned by the function + [PersonID] int NOT NULL, + [FirstName] [nvarchar](50) NULL, + [LastName] [nvarchar](50) NULL, + [JobTitle] [nvarchar](50) NULL, + [BusinessEntityType] [nvarchar](50) NULL +) +AS +-- Returns the first name, last name, job title and business entity type for the specified contact. +-- Since a contact can serve multiple roles, more than one row may be returned. +BEGIN + IF @PersonID IS NOT NULL + BEGIN + IF EXISTS(SELECT * FROM [HumanResources].[Employee] e + WHERE e.[BusinessEntityID] = @PersonID) + INSERT INTO @retContactInformation + SELECT @PersonID, p.FirstName, p.LastName, e.[JobTitle], 'Employee' + FROM [HumanResources].[Employee] AS e + INNER JOIN [Person].[Person] p + ON p.[BusinessEntityID] = e.[BusinessEntityID] + WHERE e.[BusinessEntityID] = @PersonID; + + IF EXISTS(SELECT * FROM [Purchasing].[Vendor] AS v + INNER JOIN [Person].[BusinessEntityContact] bec + ON bec.[BusinessEntityID] = v.[BusinessEntityID] + WHERE bec.[PersonID] = @PersonID) + INSERT INTO @retContactInformation + SELECT @PersonID, p.FirstName, p.LastName, ct.[Name], 'Vendor Contact' + FROM [Purchasing].[Vendor] AS v + INNER JOIN [Person].[BusinessEntityContact] bec + ON bec.[BusinessEntityID] = v.[BusinessEntityID] + INNER JOIN [Person].ContactType ct + ON ct.[ContactTypeID] = bec.[ContactTypeID] + INNER JOIN [Person].[Person] p + ON p.[BusinessEntityID] = bec.[PersonID] + WHERE bec.[PersonID] = @PersonID; + + IF EXISTS(SELECT * FROM [Sales].[Store] AS s + INNER JOIN [Person].[BusinessEntityContact] bec + ON bec.[BusinessEntityID] = s.[BusinessEntityID] + WHERE bec.[PersonID] = @PersonID) + INSERT INTO @retContactInformation + SELECT @PersonID, p.FirstName, p.LastName, ct.[Name], 'Store Contact' + FROM [Sales].[Store] AS s + INNER JOIN [Person].[BusinessEntityContact] bec + ON bec.[BusinessEntityID] = s.[BusinessEntityID] + INNER JOIN [Person].ContactType ct + ON ct.[ContactTypeID] = bec.[ContactTypeID] + INNER JOIN [Person].[Person] p + ON p.[BusinessEntityID] = bec.[PersonID] + WHERE bec.[PersonID] = @PersonID; + + IF EXISTS(SELECT * FROM [Person].[Person] AS p + INNER JOIN [Sales].[Customer] AS c + ON c.[PersonID] = p.[BusinessEntityID] + WHERE p.[BusinessEntityID] = @PersonID AND c.[StoreID] IS NULL) + INSERT INTO @retContactInformation + SELECT @PersonID, p.FirstName, p.LastName, NULL, 'Consumer' + FROM [Person].[Person] AS p + INNER JOIN [Sales].[Customer] AS c + ON c.[PersonID] = p.[BusinessEntityID] + WHERE p.[BusinessEntityID] = @PersonID AND c.[StoreID] IS NULL; + END + + RETURN; +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetDocumentStatusText.sql b/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetDocumentStatusText.sql new file mode 100644 index 0000000..f6c4ff0 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetDocumentStatusText.sql @@ -0,0 +1,21 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[ufnGetDocumentStatusText]') AND type = 'FN') +DROP FUNCTION [dbo].[ufnGetDocumentStatusText] +GO + +CREATE FUNCTION [dbo].[ufnGetDocumentStatusText](@Status [tinyint]) +RETURNS [nvarchar](16) +AS +-- Returns the sales order status text representation for the status value. +BEGIN + DECLARE @ret [nvarchar](16); + + SET @ret = + CASE @Status + WHEN 1 THEN N'Pending approval' + WHEN 2 THEN N'Approved' + WHEN 3 THEN N'Obsolete' + ELSE N'** Invalid **' + END; + + RETURN @ret +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetProductDealerPrice.sql b/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetProductDealerPrice.sql new file mode 100644 index 0000000..934190c --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetProductDealerPrice.sql @@ -0,0 +1,25 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[ufnGetProductDealerPrice]') AND type = 'FN') +DROP FUNCTION [dbo].[ufnGetProductDealerPrice] +GO + + + +CREATE FUNCTION [dbo].[ufnGetProductDealerPrice](@ProductID [int], @OrderDate [datetime]) +RETURNS [money] +AS +-- Returns the dealer price for the product on a specific date. +BEGIN + DECLARE @DealerPrice money; + DECLARE @DealerDiscount money; + + SET @DealerDiscount = 0.60 -- 60% of list price + + SELECT @DealerPrice = plph.[ListPrice] * @DealerDiscount + FROM [Production].[Product] p + INNER JOIN [Production].[ProductListPriceHistory] plph + ON p.[ProductID] = plph.[ProductID] + AND p.[ProductID] = @ProductID + AND @OrderDate BETWEEN plph.[StartDate] AND COALESCE(plph.[EndDate], CONVERT(datetime, '99991231', 112)); -- Make sure we get all the prices! + + RETURN @DealerPrice; +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetProductListPrice.sql b/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetProductListPrice.sql new file mode 100644 index 0000000..36b39d4 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetProductListPrice.sql @@ -0,0 +1,19 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[ufnGetProductListPrice]') AND type = 'FN') +DROP FUNCTION [dbo].[ufnGetProductListPrice] +GO + +CREATE FUNCTION [dbo].[ufnGetProductListPrice](@ProductID [int], @OrderDate [datetime]) +RETURNS [money] +AS +BEGIN + DECLARE @ListPrice money; + + SELECT @ListPrice = plph.[ListPrice] + FROM [Production].[Product] p + INNER JOIN [Production].[ProductListPriceHistory] plph + ON p.[ProductID] = plph.[ProductID] + AND p.[ProductID] = @ProductID + AND @OrderDate BETWEEN plph.[StartDate] AND COALESCE(plph.[EndDate], CONVERT(datetime, '99991231', 112)); -- Make sure we get all the prices! + + RETURN @ListPrice; +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetProductStandardCost.sql b/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetProductStandardCost.sql new file mode 100644 index 0000000..da63090 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetProductStandardCost.sql @@ -0,0 +1,20 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[ufnGetProductStandardCost]') AND type = 'FN') +DROP FUNCTION [dbo].[ufnGetProductStandardCost] +GO + +CREATE FUNCTION [dbo].[ufnGetProductStandardCost](@ProductID [int], @OrderDate [datetime]) +RETURNS [money] +AS +-- Returns the standard cost for the product on a specific date. +BEGIN + DECLARE @StandardCost money; + + SELECT @StandardCost = pch.[StandardCost] + FROM [Production].[Product] p + INNER JOIN [Production].[ProductCostHistory] pch + ON p.[ProductID] = pch.[ProductID] + AND p.[ProductID] = @ProductID + AND @OrderDate BETWEEN pch.[StartDate] AND COALESCE(pch.[EndDate], CONVERT(datetime, '99991231', 112)); -- Make sure we get all the prices! + + RETURN @StandardCost; +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetPurchaseOrderStatusText.sql b/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetPurchaseOrderStatusText.sql new file mode 100644 index 0000000..c143bf5 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetPurchaseOrderStatusText.sql @@ -0,0 +1,22 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[ufnGetPurchaseOrderStatusText]') AND type = 'FN') +DROP FUNCTION [dbo].[ufnGetPurchaseOrderStatusText] +GO + +CREATE FUNCTION [dbo].[ufnGetPurchaseOrderStatusText](@Status [tinyint]) +RETURNS [nvarchar](15) +AS +-- Returns the sales order status text representation for the status value. +BEGIN + DECLARE @ret [nvarchar](15); + + SET @ret = + CASE @Status + WHEN 1 THEN 'Pending' + WHEN 2 THEN 'Approved' + WHEN 3 THEN 'Rejected' + WHEN 4 THEN 'Complete' + ELSE '** Invalid **' + END; + + RETURN @ret +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetSalesOrderStatusText.sql b/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetSalesOrderStatusText.sql new file mode 100644 index 0000000..aaa4b66 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetSalesOrderStatusText.sql @@ -0,0 +1,24 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[ufnGetSalesOrderStatusText]') AND type = 'FN') +DROP FUNCTION [dbo].[ufnGetSalesOrderStatusText] +GO + +CREATE FUNCTION [dbo].[ufnGetSalesOrderStatusText](@Status [tinyint]) +RETURNS [nvarchar](15) +AS +-- Returns the sales order status text representation for the status value. +BEGIN + DECLARE @ret [nvarchar](15); + + SET @ret = + CASE @Status + WHEN 1 THEN 'In process' + WHEN 2 THEN 'Approved' + WHEN 3 THEN 'Backordered' + WHEN 4 THEN 'Rejected' + WHEN 5 THEN 'Shipped' + WHEN 6 THEN 'Cancelled' + ELSE '** Invalid **' + END; + + RETURN @ret +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetStock.sql b/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetStock.sql new file mode 100644 index 0000000..e403b88 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnGetStock.sql @@ -0,0 +1,21 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[ufnGetStock]') AND type = 'FN') +DROP FUNCTION [dbo].[ufnGetStock] +GO + +CREATE FUNCTION [dbo].[ufnGetStock](@ProductID [int]) +RETURNS [int] +AS +-- Returns the stock level for the product. This function is used internally only +BEGIN + DECLARE @ret int; + + SELECT @ret = SUM(p.[Quantity]) + FROM [Production].[ProductInventory] p + WHERE p.[ProductID] = @ProductID + AND p.[LocationID] = '6'; -- Only look at inventory in the misc storage + + IF (@ret IS NULL) + SET @ret = 0 + + RETURN @ret +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnLeadingZeros.sql b/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnLeadingZeros.sql new file mode 100644 index 0000000..9a194e3 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/functions/dbo.ufnLeadingZeros.sql @@ -0,0 +1,18 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[ufnLeadingZeros]') AND type = 'FN') +DROP FUNCTION [dbo].[ufnLeadingZeros] +GO + +CREATE FUNCTION [dbo].[ufnLeadingZeros]( + @Value int +) +RETURNS varchar(8) +WITH SCHEMABINDING +AS +BEGIN + DECLARE @ReturnValue varchar(8); + + SET @ReturnValue = CONVERT(varchar(8), @Value); + SET @ReturnValue = REPLICATE('0', 8 - DATALENGTH(@ReturnValue)) + @ReturnValue; + + RETURN (@ReturnValue); +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/schemas/HumanResources.sql b/snapshots/AdventureWorks2017/_sql-database/schemas/HumanResources.sql new file mode 100644 index 0000000..811c329 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/schemas/HumanResources.sql @@ -0,0 +1,2 @@ +IF NOT EXISTS (SELECT 1 FROM sys.schemas WHERE name = 'HumanResources') +EXEC('CREATE SCHEMA HumanResources') \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/schemas/Person.sql b/snapshots/AdventureWorks2017/_sql-database/schemas/Person.sql new file mode 100644 index 0000000..31ed728 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/schemas/Person.sql @@ -0,0 +1,2 @@ +IF NOT EXISTS (SELECT 1 FROM sys.schemas WHERE name = 'Person') +EXEC('CREATE SCHEMA Person') \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/schemas/Production.sql b/snapshots/AdventureWorks2017/_sql-database/schemas/Production.sql new file mode 100644 index 0000000..3c36715 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/schemas/Production.sql @@ -0,0 +1,2 @@ +IF NOT EXISTS (SELECT 1 FROM sys.schemas WHERE name = 'Production') +EXEC('CREATE SCHEMA Production') \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/schemas/Purchasing.sql b/snapshots/AdventureWorks2017/_sql-database/schemas/Purchasing.sql new file mode 100644 index 0000000..4c33d21 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/schemas/Purchasing.sql @@ -0,0 +1,2 @@ +IF NOT EXISTS (SELECT 1 FROM sys.schemas WHERE name = 'Purchasing') +EXEC('CREATE SCHEMA Purchasing') \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/schemas/Sales.sql b/snapshots/AdventureWorks2017/_sql-database/schemas/Sales.sql new file mode 100644 index 0000000..f57b0a7 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/schemas/Sales.sql @@ -0,0 +1,2 @@ +IF NOT EXISTS (SELECT 1 FROM sys.schemas WHERE name = 'Sales') +EXEC('CREATE SCHEMA Sales') \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/schemas/dbo.sql b/snapshots/AdventureWorks2017/_sql-database/schemas/dbo.sql new file mode 100644 index 0000000..81b5e30 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/schemas/dbo.sql @@ -0,0 +1,2 @@ +IF NOT EXISTS (SELECT 1 FROM sys.schemas WHERE name = 'dbo') +EXEC('CREATE SCHEMA dbo') \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/stored-procedures/HumanResources.uspUpdateEmployeeHireInfo.sql b/snapshots/AdventureWorks2017/_sql-database/stored-procedures/HumanResources.uspUpdateEmployeeHireInfo.sql new file mode 100644 index 0000000..6cd44de --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/stored-procedures/HumanResources.uspUpdateEmployeeHireInfo.sql @@ -0,0 +1,46 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[HumanResources].[uspUpdateEmployeeHireInfo]') AND type = 'P') +DROP PROCEDURE [HumanResources].[uspUpdateEmployeeHireInfo] +GO + +CREATE PROCEDURE [HumanResources].[uspUpdateEmployeeHireInfo] + @BusinessEntityID [int], + @JobTitle [nvarchar](50), + @HireDate [datetime], + @RateChangeDate [datetime], + @Rate [money], + @PayFrequency [tinyint], + @CurrentFlag [dbo].[Flag] +WITH EXECUTE AS CALLER +AS +BEGIN + SET NOCOUNT ON; + + BEGIN TRY + BEGIN TRANSACTION; + + UPDATE [HumanResources].[Employee] + SET [JobTitle] = @JobTitle + ,[HireDate] = @HireDate + ,[CurrentFlag] = @CurrentFlag + WHERE [BusinessEntityID] = @BusinessEntityID; + + INSERT INTO [HumanResources].[EmployeePayHistory] + ([BusinessEntityID] + ,[RateChangeDate] + ,[Rate] + ,[PayFrequency]) + VALUES (@BusinessEntityID, @RateChangeDate, @Rate, @PayFrequency); + + COMMIT TRANSACTION; + END TRY + BEGIN CATCH + -- Rollback any active or uncommittable transactions before + -- inserting information in the ErrorLog + IF @@TRANCOUNT > 0 + BEGIN + ROLLBACK TRANSACTION; + END + + EXECUTE [dbo].[uspLogError]; + END CATCH; +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/stored-procedures/HumanResources.uspUpdateEmployeeLogin.sql b/snapshots/AdventureWorks2017/_sql-database/stored-procedures/HumanResources.uspUpdateEmployeeLogin.sql new file mode 100644 index 0000000..eb088a3 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/stored-procedures/HumanResources.uspUpdateEmployeeLogin.sql @@ -0,0 +1,29 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[HumanResources].[uspUpdateEmployeeLogin]') AND type = 'P') +DROP PROCEDURE [HumanResources].[uspUpdateEmployeeLogin] +GO + +CREATE PROCEDURE [HumanResources].[uspUpdateEmployeeLogin] + @BusinessEntityID [int], + @OrganizationNode [hierarchyid], + @LoginID [nvarchar](256), + @JobTitle [nvarchar](50), + @HireDate [datetime], + @CurrentFlag [dbo].[Flag] +WITH EXECUTE AS CALLER +AS +BEGIN + SET NOCOUNT ON; + + BEGIN TRY + UPDATE [HumanResources].[Employee] + SET [OrganizationNode] = @OrganizationNode + ,[LoginID] = @LoginID + ,[JobTitle] = @JobTitle + ,[HireDate] = @HireDate + ,[CurrentFlag] = @CurrentFlag + WHERE [BusinessEntityID] = @BusinessEntityID; + END TRY + BEGIN CATCH + EXECUTE [dbo].[uspLogError]; + END CATCH; +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/stored-procedures/HumanResources.uspUpdateEmployeePersonalInfo.sql b/snapshots/AdventureWorks2017/_sql-database/stored-procedures/HumanResources.uspUpdateEmployeePersonalInfo.sql new file mode 100644 index 0000000..c8b0dca --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/stored-procedures/HumanResources.uspUpdateEmployeePersonalInfo.sql @@ -0,0 +1,27 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[HumanResources].[uspUpdateEmployeePersonalInfo]') AND type = 'P') +DROP PROCEDURE [HumanResources].[uspUpdateEmployeePersonalInfo] +GO + +CREATE PROCEDURE [HumanResources].[uspUpdateEmployeePersonalInfo] + @BusinessEntityID [int], + @NationalIDNumber [nvarchar](15), + @BirthDate [datetime], + @MaritalStatus [nchar](1), + @Gender [nchar](1) +WITH EXECUTE AS CALLER +AS +BEGIN + SET NOCOUNT ON; + + BEGIN TRY + UPDATE [HumanResources].[Employee] + SET [NationalIDNumber] = @NationalIDNumber + ,[BirthDate] = @BirthDate + ,[MaritalStatus] = @MaritalStatus + ,[Gender] = @Gender + WHERE [BusinessEntityID] = @BusinessEntityID; + END TRY + BEGIN CATCH + EXECUTE [dbo].[uspLogError]; + END CATCH; +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/stored-procedures/dbo.uspGetBillOfMaterials.sql b/snapshots/AdventureWorks2017/_sql-database/stored-procedures/dbo.uspGetBillOfMaterials.sql new file mode 100644 index 0000000..58f88d1 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/stored-procedures/dbo.uspGetBillOfMaterials.sql @@ -0,0 +1,40 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[uspGetBillOfMaterials]') AND type = 'P') +DROP PROCEDURE [dbo].[uspGetBillOfMaterials] +GO + +CREATE PROCEDURE [dbo].[uspGetBillOfMaterials] + @StartProductID [int], + @CheckDate [datetime] +AS +BEGIN + SET NOCOUNT ON; + + -- Use recursive query to generate a multi-level Bill of Material (i.e. all level 1 + -- components of a level 0 assembly, all level 2 components of a level 1 assembly) + -- The CheckDate eliminates any components that are no longer used in the product on this date. + WITH [BOM_cte]([ProductAssemblyID], [ComponentID], [ComponentDesc], [PerAssemblyQty], [StandardCost], [ListPrice], [BOMLevel], [RecursionLevel]) -- CTE name and columns + AS ( + SELECT b.[ProductAssemblyID], b.[ComponentID], p.[Name], b.[PerAssemblyQty], p.[StandardCost], p.[ListPrice], b.[BOMLevel], 0 -- Get the initial list of components for the bike assembly + FROM [Production].[BillOfMaterials] b + INNER JOIN [Production].[Product] p + ON b.[ComponentID] = p.[ProductID] + WHERE b.[ProductAssemblyID] = @StartProductID + AND @CheckDate >= b.[StartDate] + AND @CheckDate <= ISNULL(b.[EndDate], @CheckDate) + UNION ALL + SELECT b.[ProductAssemblyID], b.[ComponentID], p.[Name], b.[PerAssemblyQty], p.[StandardCost], p.[ListPrice], b.[BOMLevel], [RecursionLevel] + 1 -- Join recursive member to anchor + FROM [BOM_cte] cte + INNER JOIN [Production].[BillOfMaterials] b + ON b.[ProductAssemblyID] = cte.[ComponentID] + INNER JOIN [Production].[Product] p + ON b.[ComponentID] = p.[ProductID] + WHERE @CheckDate >= b.[StartDate] + AND @CheckDate <= ISNULL(b.[EndDate], @CheckDate) + ) + -- Outer select from the CTE + SELECT b.[ProductAssemblyID], b.[ComponentID], b.[ComponentDesc], SUM(b.[PerAssemblyQty]) AS [TotalQuantity] , b.[StandardCost], b.[ListPrice], b.[BOMLevel], b.[RecursionLevel] + FROM [BOM_cte] b + GROUP BY b.[ComponentID], b.[ComponentDesc], b.[ProductAssemblyID], b.[BOMLevel], b.[RecursionLevel], b.[StandardCost], b.[ListPrice] + ORDER BY b.[BOMLevel], b.[ProductAssemblyID], b.[ComponentID] + OPTION (MAXRECURSION 25) +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/stored-procedures/dbo.uspGetEmployeeManagers.sql b/snapshots/AdventureWorks2017/_sql-database/stored-procedures/dbo.uspGetEmployeeManagers.sql new file mode 100644 index 0000000..783cc5f --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/stored-procedures/dbo.uspGetEmployeeManagers.sql @@ -0,0 +1,37 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[uspGetEmployeeManagers]') AND type = 'P') +DROP PROCEDURE [dbo].[uspGetEmployeeManagers] +GO + +CREATE PROCEDURE [dbo].[uspGetEmployeeManagers] + @BusinessEntityID [int] +AS +BEGIN + SET NOCOUNT ON; + + -- Use recursive query to list out all Employees required for a particular Manager + WITH [EMP_cte]([BusinessEntityID], [OrganizationNode], [FirstName], [LastName], [JobTitle], [RecursionLevel]) -- CTE name and columns + AS ( + SELECT e.[BusinessEntityID], e.[OrganizationNode], p.[FirstName], p.[LastName], e.[JobTitle], 0 -- Get the initial Employee + FROM [HumanResources].[Employee] e + INNER JOIN [Person].[Person] as p + ON p.[BusinessEntityID] = e.[BusinessEntityID] + WHERE e.[BusinessEntityID] = @BusinessEntityID + UNION ALL + SELECT e.[BusinessEntityID], e.[OrganizationNode], p.[FirstName], p.[LastName], e.[JobTitle], [RecursionLevel] + 1 -- Join recursive member to anchor + FROM [HumanResources].[Employee] e + INNER JOIN [EMP_cte] + ON e.[OrganizationNode] = [EMP_cte].[OrganizationNode].GetAncestor(1) + INNER JOIN [Person].[Person] p + ON p.[BusinessEntityID] = e.[BusinessEntityID] + ) + -- Join back to Employee to return the manager name + SELECT [EMP_cte].[RecursionLevel], [EMP_cte].[BusinessEntityID], [EMP_cte].[FirstName], [EMP_cte].[LastName], + [EMP_cte].[OrganizationNode].ToString() AS [OrganizationNode], p.[FirstName] AS 'ManagerFirstName', p.[LastName] AS 'ManagerLastName' -- Outer select from the CTE + FROM [EMP_cte] + INNER JOIN [HumanResources].[Employee] e + ON [EMP_cte].[OrganizationNode].GetAncestor(1) = e.[OrganizationNode] + INNER JOIN [Person].[Person] p + ON p.[BusinessEntityID] = e.[BusinessEntityID] + ORDER BY [RecursionLevel], [EMP_cte].[OrganizationNode].ToString() + OPTION (MAXRECURSION 25) +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/stored-procedures/dbo.uspGetManagerEmployees.sql b/snapshots/AdventureWorks2017/_sql-database/stored-procedures/dbo.uspGetManagerEmployees.sql new file mode 100644 index 0000000..9298d5d --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/stored-procedures/dbo.uspGetManagerEmployees.sql @@ -0,0 +1,37 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[uspGetManagerEmployees]') AND type = 'P') +DROP PROCEDURE [dbo].[uspGetManagerEmployees] +GO + +CREATE PROCEDURE [dbo].[uspGetManagerEmployees] + @BusinessEntityID [int] +AS +BEGIN + SET NOCOUNT ON; + + -- Use recursive query to list out all Employees required for a particular Manager + WITH [EMP_cte]([BusinessEntityID], [OrganizationNode], [FirstName], [LastName], [RecursionLevel]) -- CTE name and columns + AS ( + SELECT e.[BusinessEntityID], e.[OrganizationNode], p.[FirstName], p.[LastName], 0 -- Get the initial list of Employees for Manager n + FROM [HumanResources].[Employee] e + INNER JOIN [Person].[Person] p + ON p.[BusinessEntityID] = e.[BusinessEntityID] + WHERE e.[BusinessEntityID] = @BusinessEntityID + UNION ALL + SELECT e.[BusinessEntityID], e.[OrganizationNode], p.[FirstName], p.[LastName], [RecursionLevel] + 1 -- Join recursive member to anchor + FROM [HumanResources].[Employee] e + INNER JOIN [EMP_cte] + ON e.[OrganizationNode].GetAncestor(1) = [EMP_cte].[OrganizationNode] + INNER JOIN [Person].[Person] p + ON p.[BusinessEntityID] = e.[BusinessEntityID] + ) + -- Join back to Employee to return the manager name + SELECT [EMP_cte].[RecursionLevel], [EMP_cte].[OrganizationNode].ToString() as [OrganizationNode], p.[FirstName] AS 'ManagerFirstName', p.[LastName] AS 'ManagerLastName', + [EMP_cte].[BusinessEntityID], [EMP_cte].[FirstName], [EMP_cte].[LastName] -- Outer select from the CTE + FROM [EMP_cte] + INNER JOIN [HumanResources].[Employee] e + ON [EMP_cte].[OrganizationNode].GetAncestor(1) = e.[OrganizationNode] + INNER JOIN [Person].[Person] p + ON p.[BusinessEntityID] = e.[BusinessEntityID] + ORDER BY [RecursionLevel], [EMP_cte].[OrganizationNode].ToString() + OPTION (MAXRECURSION 25) +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/stored-procedures/dbo.uspGetWhereUsedProductID.sql b/snapshots/AdventureWorks2017/_sql-database/stored-procedures/dbo.uspGetWhereUsedProductID.sql new file mode 100644 index 0000000..7844f3b --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/stored-procedures/dbo.uspGetWhereUsedProductID.sql @@ -0,0 +1,38 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[uspGetWhereUsedProductID]') AND type = 'P') +DROP PROCEDURE [dbo].[uspGetWhereUsedProductID] +GO + +CREATE PROCEDURE [dbo].[uspGetWhereUsedProductID] + @StartProductID [int], + @CheckDate [datetime] +AS +BEGIN + SET NOCOUNT ON; + + --Use recursive query to generate a multi-level Bill of Material (i.e. all level 1 components of a level 0 assembly, all level 2 components of a level 1 assembly) + WITH [BOM_cte]([ProductAssemblyID], [ComponentID], [ComponentDesc], [PerAssemblyQty], [StandardCost], [ListPrice], [BOMLevel], [RecursionLevel]) -- CTE name and columns + AS ( + SELECT b.[ProductAssemblyID], b.[ComponentID], p.[Name], b.[PerAssemblyQty], p.[StandardCost], p.[ListPrice], b.[BOMLevel], 0 -- Get the initial list of components for the bike assembly + FROM [Production].[BillOfMaterials] b + INNER JOIN [Production].[Product] p + ON b.[ProductAssemblyID] = p.[ProductID] + WHERE b.[ComponentID] = @StartProductID + AND @CheckDate >= b.[StartDate] + AND @CheckDate <= ISNULL(b.[EndDate], @CheckDate) + UNION ALL + SELECT b.[ProductAssemblyID], b.[ComponentID], p.[Name], b.[PerAssemblyQty], p.[StandardCost], p.[ListPrice], b.[BOMLevel], [RecursionLevel] + 1 -- Join recursive member to anchor + FROM [BOM_cte] cte + INNER JOIN [Production].[BillOfMaterials] b + ON cte.[ProductAssemblyID] = b.[ComponentID] + INNER JOIN [Production].[Product] p + ON b.[ProductAssemblyID] = p.[ProductID] + WHERE @CheckDate >= b.[StartDate] + AND @CheckDate <= ISNULL(b.[EndDate], @CheckDate) + ) + -- Outer select from the CTE + SELECT b.[ProductAssemblyID], b.[ComponentID], b.[ComponentDesc], SUM(b.[PerAssemblyQty]) AS [TotalQuantity] , b.[StandardCost], b.[ListPrice], b.[BOMLevel], b.[RecursionLevel] + FROM [BOM_cte] b + GROUP BY b.[ComponentID], b.[ComponentDesc], b.[ProductAssemblyID], b.[BOMLevel], b.[RecursionLevel], b.[StandardCost], b.[ListPrice] + ORDER BY b.[BOMLevel], b.[ProductAssemblyID], b.[ComponentID] + OPTION (MAXRECURSION 25) +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/stored-procedures/dbo.uspLogError.sql b/snapshots/AdventureWorks2017/_sql-database/stored-procedures/dbo.uspLogError.sql new file mode 100644 index 0000000..c363888 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/stored-procedures/dbo.uspLogError.sql @@ -0,0 +1,64 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[uspLogError]') AND type = 'P') +DROP PROCEDURE [dbo].[uspLogError] +GO + +-- uspLogError logs error information in the ErrorLog table about the +-- error that caused execution to jump to the CATCH block of a +-- TRY...CATCH construct. This should be executed from within the scope +-- of a CATCH block otherwise it will return without inserting error +-- information. +CREATE PROCEDURE [dbo].[uspLogError] + @ErrorLogID [int] = 0 OUTPUT -- contains the ErrorLogID of the row inserted +AS -- by uspLogError in the ErrorLog table +BEGIN + SET NOCOUNT ON; + + -- Output parameter value of 0 indicates that error + -- information was not logged + SET @ErrorLogID = 0; + + BEGIN TRY + -- Return if there is no error information to log + IF ERROR_NUMBER() IS NULL + RETURN; + + -- Return if inside an uncommittable transaction. + -- Data insertion/modification is not allowed when + -- a transaction is in an uncommittable state. + IF XACT_STATE() = -1 + BEGIN + PRINT 'Cannot log error since the current transaction is in an uncommittable state. ' + + 'Rollback the transaction before executing uspLogError in order to successfully log error information.'; + RETURN; + END + + INSERT [dbo].[ErrorLog] + ( + [UserName], + [ErrorNumber], + [ErrorSeverity], + [ErrorState], + [ErrorProcedure], + [ErrorLine], + [ErrorMessage] + ) + VALUES + ( + CONVERT(sysname, CURRENT_USER), + ERROR_NUMBER(), + ERROR_SEVERITY(), + ERROR_STATE(), + ERROR_PROCEDURE(), + ERROR_LINE(), + ERROR_MESSAGE() + ); + + -- Pass back the ErrorLogID of the row inserted + SET @ErrorLogID = @@IDENTITY; + END TRY + BEGIN CATCH + PRINT 'An error occurred in stored procedure uspLogError: '; + EXECUTE [dbo].[uspPrintError]; + RETURN -1; + END CATCH +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/stored-procedures/dbo.uspPrintError.sql b/snapshots/AdventureWorks2017/_sql-database/stored-procedures/dbo.uspPrintError.sql new file mode 100644 index 0000000..76184b0 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/stored-procedures/dbo.uspPrintError.sql @@ -0,0 +1,21 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[uspPrintError]') AND type = 'P') +DROP PROCEDURE [dbo].[uspPrintError] +GO + +-- uspPrintError prints error information about the error that caused +-- execution to jump to the CATCH block of a TRY...CATCH construct. +-- Should be executed from within the scope of a CATCH block otherwise +-- it will return without printing any error information. +CREATE PROCEDURE [dbo].[uspPrintError] +AS +BEGIN + SET NOCOUNT ON; + + -- Print error information. + PRINT 'Error ' + CONVERT(varchar(50), ERROR_NUMBER()) + + ', Severity ' + CONVERT(varchar(5), ERROR_SEVERITY()) + + ', State ' + CONVERT(varchar(5), ERROR_STATE()) + + ', Procedure ' + ISNULL(ERROR_PROCEDURE(), '-') + + ', Line ' + CONVERT(varchar(5), ERROR_LINE()); + PRINT ERROR_MESSAGE(); +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/stored-procedures/dbo.uspSearchCandidateResumes.sql b/snapshots/AdventureWorks2017/_sql-database/stored-procedures/dbo.uspSearchCandidateResumes.sql new file mode 100644 index 0000000..70bc106 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/stored-procedures/dbo.uspSearchCandidateResumes.sql @@ -0,0 +1,59 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[uspSearchCandidateResumes]') AND type = 'P') +DROP PROCEDURE [dbo].[uspSearchCandidateResumes] +GO + +--A stored procedure which demonstrates integrated full text search + +CREATE PROCEDURE [dbo].[uspSearchCandidateResumes] + @searchString [nvarchar](1000), + @useInflectional [bit]=0, + @useThesaurus [bit]=0, + @language[int]=0 + + +WITH EXECUTE AS CALLER +AS +BEGIN + SET NOCOUNT ON; + + DECLARE @string nvarchar(1050) + --setting the lcid to the default instance LCID if needed + IF @language = NULL OR @language = 0 + BEGIN + SELECT @language =CONVERT(int, serverproperty('lcid')) + END + + + --FREETEXTTABLE case as inflectional and Thesaurus were required + IF @useThesaurus = 1 AND @useInflectional = 1 + BEGIN + SELECT FT_TBL.[JobCandidateID], KEY_TBL.[RANK] FROM [HumanResources].[JobCandidate] AS FT_TBL + INNER JOIN FREETEXTTABLE([HumanResources].[JobCandidate],*, @searchString,LANGUAGE @language) AS KEY_TBL + ON FT_TBL.[JobCandidateID] =KEY_TBL.[KEY] + END + + ELSE IF @useThesaurus = 1 + BEGIN + SELECT @string ='FORMSOF(THESAURUS,"'+@searchString +'"'+')' + SELECT FT_TBL.[JobCandidateID], KEY_TBL.[RANK] FROM [HumanResources].[JobCandidate] AS FT_TBL + INNER JOIN CONTAINSTABLE([HumanResources].[JobCandidate],*, @string,LANGUAGE @language) AS KEY_TBL + ON FT_TBL.[JobCandidateID] =KEY_TBL.[KEY] + END + + ELSE IF @useInflectional = 1 + BEGIN + SELECT @string ='FORMSOF(INFLECTIONAL,"'+@searchString +'"'+')' + SELECT FT_TBL.[JobCandidateID], KEY_TBL.[RANK] FROM [HumanResources].[JobCandidate] AS FT_TBL + INNER JOIN CONTAINSTABLE([HumanResources].[JobCandidate],*, @string,LANGUAGE @language) AS KEY_TBL + ON FT_TBL.[JobCandidateID] =KEY_TBL.[KEY] + END + + ELSE --base case, plain CONTAINSTABLE + BEGIN + SELECT @string='"'+@searchString +'"' + SELECT FT_TBL.[JobCandidateID],KEY_TBL.[RANK] FROM [HumanResources].[JobCandidate] AS FT_TBL + INNER JOIN CONTAINSTABLE([HumanResources].[JobCandidate],*,@string,LANGUAGE @language) AS KEY_TBL + ON FT_TBL.[JobCandidateID] =KEY_TBL.[KEY] + END + +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/HumanResources.Department.sql b/snapshots/AdventureWorks2017/_sql-database/tables/HumanResources.Department.sql new file mode 100644 index 0000000..4e429a0 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/HumanResources.Department.sql @@ -0,0 +1,12 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[HumanResources].[Department]') AND type = 'U') +CREATE TABLE [HumanResources].[Department] +( + [DepartmentID] smallint NOT NULL IDENTITY(1, 1), + [Name] Name NOT NULL, + [GroupName] Name NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_Department_DepartmentID] PRIMARY KEY CLUSTERED ([DepartmentID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[HumanResources].[Department]') AND name = 'AK_Department_Name') +CREATE UNIQUE NONCLUSTERED INDEX [AK_Department_Name] ON [HumanResources].[Department]([Name] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/HumanResources.Employee.sql b/snapshots/AdventureWorks2017/_sql-database/tables/HumanResources.Employee.sql new file mode 100644 index 0000000..0867c50 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/HumanResources.Employee.sql @@ -0,0 +1,45 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[HumanResources].[Employee]') AND type = 'U') +CREATE TABLE [HumanResources].[Employee] +( + [BusinessEntityID] int NOT NULL, + [NationalIDNumber] nvarchar(15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [LoginID] nvarchar(256) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [OrganizationNode] hierarchyid NULL, + [OrganizationLevel] AS ([OrganizationNode].[GetLevel]()), + [JobTitle] nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [BirthDate] date NOT NULL, + [MaritalStatus] nchar(1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [Gender] nchar(1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [HireDate] date NOT NULL, + [SalariedFlag] Flag NOT NULL DEFAULT((1)), + [VacationHours] smallint NOT NULL DEFAULT((0)), + [SickLeaveHours] smallint NOT NULL DEFAULT((0)), + [CurrentFlag] Flag NOT NULL DEFAULT((1)), + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_Employee_BusinessEntityID] PRIMARY KEY CLUSTERED ([BusinessEntityID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[HumanResources].[FK_Employee_Person_BusinessEntityID]') AND parent_object_id = OBJECT_ID('[HumanResources].[Employee]')) +BEGIN + ALTER TABLE [HumanResources].[Employee] WITH CHECK ADD CONSTRAINT [FK_Employee_Person_BusinessEntityID] FOREIGN KEY ([BusinessEntityID]) REFERENCES [Person].[Person] ([BusinessEntityID]) + ALTER TABLE [HumanResources].[Employee] CHECK CONSTRAINT [FK_Employee_Person_BusinessEntityID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[HumanResources].[Employee]') AND name = 'AK_Employee_LoginID') +CREATE UNIQUE NONCLUSTERED INDEX [AK_Employee_LoginID] ON [HumanResources].[Employee]([LoginID] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[HumanResources].[Employee]') AND name = 'AK_Employee_NationalIDNumber') +CREATE UNIQUE NONCLUSTERED INDEX [AK_Employee_NationalIDNumber] ON [HumanResources].[Employee]([NationalIDNumber] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[HumanResources].[Employee]') AND name = 'AK_Employee_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_Employee_rowguid] ON [HumanResources].[Employee]([rowguid] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[HumanResources].[Employee]') AND name = 'IX_Employee_OrganizationLevel_OrganizationNode') +CREATE NONCLUSTERED INDEX [IX_Employee_OrganizationLevel_OrganizationNode] ON [HumanResources].[Employee]( + [OrganizationLevel] ASC, + [OrganizationNode] ASC +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[HumanResources].[Employee]') AND name = 'IX_Employee_OrganizationNode') +CREATE NONCLUSTERED INDEX [IX_Employee_OrganizationNode] ON [HumanResources].[Employee]([OrganizationNode] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/HumanResources.EmployeeDepartmentHistory.sql b/snapshots/AdventureWorks2017/_sql-database/tables/HumanResources.EmployeeDepartmentHistory.sql new file mode 100644 index 0000000..af1d08f --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/HumanResources.EmployeeDepartmentHistory.sql @@ -0,0 +1,41 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[HumanResources].[EmployeeDepartmentHistory]') AND type = 'U') +CREATE TABLE [HumanResources].[EmployeeDepartmentHistory] +( + [BusinessEntityID] int NOT NULL, + [DepartmentID] smallint NOT NULL, + [ShiftID] tinyint NOT NULL, + [StartDate] date NOT NULL, + [EndDate] date NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_EmployeeDepartmentHistory_BusinessEntityID_StartDate_DepartmentID] PRIMARY KEY CLUSTERED + ( + [BusinessEntityID] ASC, + [StartDate] ASC, + [DepartmentID] ASC, + [ShiftID] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[HumanResources].[FK_EmployeeDepartmentHistory_Department_DepartmentID]') AND parent_object_id = OBJECT_ID('[HumanResources].[EmployeeDepartmentHistory]')) +BEGIN + ALTER TABLE [HumanResources].[EmployeeDepartmentHistory] WITH CHECK ADD CONSTRAINT [FK_EmployeeDepartmentHistory_Department_DepartmentID] FOREIGN KEY ([DepartmentID]) REFERENCES [HumanResources].[Department] ([DepartmentID]) + ALTER TABLE [HumanResources].[EmployeeDepartmentHistory] CHECK CONSTRAINT [FK_EmployeeDepartmentHistory_Department_DepartmentID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[HumanResources].[FK_EmployeeDepartmentHistory_Employee_BusinessEntityID]') AND parent_object_id = OBJECT_ID('[HumanResources].[EmployeeDepartmentHistory]')) +BEGIN + ALTER TABLE [HumanResources].[EmployeeDepartmentHistory] WITH CHECK ADD CONSTRAINT [FK_EmployeeDepartmentHistory_Employee_BusinessEntityID] FOREIGN KEY ([BusinessEntityID]) REFERENCES [HumanResources].[Employee] ([BusinessEntityID]) + ALTER TABLE [HumanResources].[EmployeeDepartmentHistory] CHECK CONSTRAINT [FK_EmployeeDepartmentHistory_Employee_BusinessEntityID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[HumanResources].[FK_EmployeeDepartmentHistory_Shift_ShiftID]') AND parent_object_id = OBJECT_ID('[HumanResources].[EmployeeDepartmentHistory]')) +BEGIN + ALTER TABLE [HumanResources].[EmployeeDepartmentHistory] WITH CHECK ADD CONSTRAINT [FK_EmployeeDepartmentHistory_Shift_ShiftID] FOREIGN KEY ([ShiftID]) REFERENCES [HumanResources].[Shift] ([ShiftID]) + ALTER TABLE [HumanResources].[EmployeeDepartmentHistory] CHECK CONSTRAINT [FK_EmployeeDepartmentHistory_Shift_ShiftID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[HumanResources].[EmployeeDepartmentHistory]') AND name = 'IX_EmployeeDepartmentHistory_DepartmentID') +CREATE NONCLUSTERED INDEX [IX_EmployeeDepartmentHistory_DepartmentID] ON [HumanResources].[EmployeeDepartmentHistory]([DepartmentID] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[HumanResources].[EmployeeDepartmentHistory]') AND name = 'IX_EmployeeDepartmentHistory_ShiftID') +CREATE NONCLUSTERED INDEX [IX_EmployeeDepartmentHistory_ShiftID] ON [HumanResources].[EmployeeDepartmentHistory]([ShiftID] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/HumanResources.EmployeePayHistory.sql b/snapshots/AdventureWorks2017/_sql-database/tables/HumanResources.EmployeePayHistory.sql new file mode 100644 index 0000000..13782ff --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/HumanResources.EmployeePayHistory.sql @@ -0,0 +1,20 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[HumanResources].[EmployeePayHistory]') AND type = 'U') +CREATE TABLE [HumanResources].[EmployeePayHistory] +( + [BusinessEntityID] int NOT NULL, + [RateChangeDate] datetime NOT NULL, + [Rate] money NOT NULL, + [PayFrequency] tinyint NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_EmployeePayHistory_BusinessEntityID_RateChangeDate] PRIMARY KEY CLUSTERED + ( + [BusinessEntityID] ASC, + [RateChangeDate] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[HumanResources].[FK_EmployeePayHistory_Employee_BusinessEntityID]') AND parent_object_id = OBJECT_ID('[HumanResources].[EmployeePayHistory]')) +BEGIN + ALTER TABLE [HumanResources].[EmployeePayHistory] WITH CHECK ADD CONSTRAINT [FK_EmployeePayHistory_Employee_BusinessEntityID] FOREIGN KEY ([BusinessEntityID]) REFERENCES [HumanResources].[Employee] ([BusinessEntityID]) + ALTER TABLE [HumanResources].[EmployeePayHistory] CHECK CONSTRAINT [FK_EmployeePayHistory_Employee_BusinessEntityID] +END \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/HumanResources.JobCandidate.sql b/snapshots/AdventureWorks2017/_sql-database/tables/HumanResources.JobCandidate.sql new file mode 100644 index 0000000..7a140e1 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/HumanResources.JobCandidate.sql @@ -0,0 +1,18 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[HumanResources].[JobCandidate]') AND type = 'U') +CREATE TABLE [HumanResources].[JobCandidate] +( + [JobCandidateID] int NOT NULL IDENTITY(1, 1), + [BusinessEntityID] int NULL, + [Resume] xml NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_JobCandidate_JobCandidateID] PRIMARY KEY CLUSTERED ([JobCandidateID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[HumanResources].[FK_JobCandidate_Employee_BusinessEntityID]') AND parent_object_id = OBJECT_ID('[HumanResources].[JobCandidate]')) +BEGIN + ALTER TABLE [HumanResources].[JobCandidate] WITH CHECK ADD CONSTRAINT [FK_JobCandidate_Employee_BusinessEntityID] FOREIGN KEY ([BusinessEntityID]) REFERENCES [HumanResources].[Employee] ([BusinessEntityID]) + ALTER TABLE [HumanResources].[JobCandidate] CHECK CONSTRAINT [FK_JobCandidate_Employee_BusinessEntityID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[HumanResources].[JobCandidate]') AND name = 'IX_JobCandidate_BusinessEntityID') +CREATE NONCLUSTERED INDEX [IX_JobCandidate_BusinessEntityID] ON [HumanResources].[JobCandidate]([BusinessEntityID] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/HumanResources.Shift.sql b/snapshots/AdventureWorks2017/_sql-database/tables/HumanResources.Shift.sql new file mode 100644 index 0000000..79b2f6e --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/HumanResources.Shift.sql @@ -0,0 +1,19 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[HumanResources].[Shift]') AND type = 'U') +CREATE TABLE [HumanResources].[Shift] +( + [ShiftID] tinyint NOT NULL IDENTITY(1, 1), + [Name] Name NOT NULL, + [StartTime] time NOT NULL, + [EndTime] time NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_Shift_ShiftID] PRIMARY KEY CLUSTERED ([ShiftID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[HumanResources].[Shift]') AND name = 'AK_Shift_Name') +CREATE UNIQUE NONCLUSTERED INDEX [AK_Shift_Name] ON [HumanResources].[Shift]([Name] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[HumanResources].[Shift]') AND name = 'AK_Shift_StartTime_EndTime') +CREATE UNIQUE NONCLUSTERED INDEX [AK_Shift_StartTime_EndTime] ON [HumanResources].[Shift]( + [StartTime] ASC, + [EndTime] ASC +) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Person.Address.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Person.Address.sql new file mode 100644 index 0000000..690dc60 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Person.Address.sql @@ -0,0 +1,35 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Person].[Address]') AND type = 'U') +CREATE TABLE [Person].[Address] +( + [AddressID] int NOT NULL IDENTITY(1, 1), + [AddressLine1] nvarchar(60) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [AddressLine2] nvarchar(60) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [City] nvarchar(30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [StateProvinceID] int NOT NULL, + [PostalCode] nvarchar(15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [SpatialLocation] geography NULL, + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_Address_AddressID] PRIMARY KEY CLUSTERED ([AddressID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Person].[FK_Address_StateProvince_StateProvinceID]') AND parent_object_id = OBJECT_ID('[Person].[Address]')) +BEGIN + ALTER TABLE [Person].[Address] WITH CHECK ADD CONSTRAINT [FK_Address_StateProvince_StateProvinceID] FOREIGN KEY ([StateProvinceID]) REFERENCES [Person].[StateProvince] ([StateProvinceID]) + ALTER TABLE [Person].[Address] CHECK CONSTRAINT [FK_Address_StateProvince_StateProvinceID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Person].[Address]') AND name = 'AK_Address_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_Address_rowguid] ON [Person].[Address]([rowguid] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Person].[Address]') AND name = 'IX_Address_AddressLine1_AddressLine2_City_StateProvinceID_PostalCode') +CREATE UNIQUE NONCLUSTERED INDEX [IX_Address_AddressLine1_AddressLine2_City_StateProvinceID_PostalCode] ON [Person].[Address]( + [AddressLine1] ASC, + [AddressLine2] ASC, + [City] ASC, + [StateProvinceID] ASC, + [PostalCode] ASC +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Person].[Address]') AND name = 'IX_Address_StateProvinceID') +CREATE NONCLUSTERED INDEX [IX_Address_StateProvinceID] ON [Person].[Address]([StateProvinceID] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Person.AddressType.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Person.AddressType.sql new file mode 100644 index 0000000..8f44f17 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Person.AddressType.sql @@ -0,0 +1,15 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Person].[AddressType]') AND type = 'U') +CREATE TABLE [Person].[AddressType] +( + [AddressTypeID] int NOT NULL IDENTITY(1, 1), + [Name] Name NOT NULL, + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_AddressType_AddressTypeID] PRIMARY KEY CLUSTERED ([AddressTypeID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Person].[AddressType]') AND name = 'AK_AddressType_Name') +CREATE UNIQUE NONCLUSTERED INDEX [AK_AddressType_Name] ON [Person].[AddressType]([Name] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Person].[AddressType]') AND name = 'AK_AddressType_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_AddressType_rowguid] ON [Person].[AddressType]([rowguid] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Person.BusinessEntity.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Person.BusinessEntity.sql new file mode 100644 index 0000000..98aa196 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Person.BusinessEntity.sql @@ -0,0 +1,11 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Person].[BusinessEntity]') AND type = 'U') +CREATE TABLE [Person].[BusinessEntity] +( + [BusinessEntityID] int NOT NULL IDENTITY(1, 1), + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_BusinessEntity_BusinessEntityID] PRIMARY KEY CLUSTERED ([BusinessEntityID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Person].[BusinessEntity]') AND name = 'AK_BusinessEntity_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_BusinessEntity_rowguid] ON [Person].[BusinessEntity]([rowguid] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Person.BusinessEntityAddress.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Person.BusinessEntityAddress.sql new file mode 100644 index 0000000..0d54e09 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Person.BusinessEntityAddress.sql @@ -0,0 +1,42 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Person].[BusinessEntityAddress]') AND type = 'U') +CREATE TABLE [Person].[BusinessEntityAddress] +( + [BusinessEntityID] int NOT NULL, + [AddressID] int NOT NULL, + [AddressTypeID] int NOT NULL, + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_BusinessEntityAddress_BusinessEntityID_AddressID_AddressTypeID] PRIMARY KEY CLUSTERED + ( + [BusinessEntityID] ASC, + [AddressID] ASC, + [AddressTypeID] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Person].[FK_BusinessEntityAddress_Address_AddressID]') AND parent_object_id = OBJECT_ID('[Person].[BusinessEntityAddress]')) +BEGIN + ALTER TABLE [Person].[BusinessEntityAddress] WITH CHECK ADD CONSTRAINT [FK_BusinessEntityAddress_Address_AddressID] FOREIGN KEY ([AddressID]) REFERENCES [Person].[Address] ([AddressID]) + ALTER TABLE [Person].[BusinessEntityAddress] CHECK CONSTRAINT [FK_BusinessEntityAddress_Address_AddressID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Person].[FK_BusinessEntityAddress_AddressType_AddressTypeID]') AND parent_object_id = OBJECT_ID('[Person].[BusinessEntityAddress]')) +BEGIN + ALTER TABLE [Person].[BusinessEntityAddress] WITH CHECK ADD CONSTRAINT [FK_BusinessEntityAddress_AddressType_AddressTypeID] FOREIGN KEY ([AddressTypeID]) REFERENCES [Person].[AddressType] ([AddressTypeID]) + ALTER TABLE [Person].[BusinessEntityAddress] CHECK CONSTRAINT [FK_BusinessEntityAddress_AddressType_AddressTypeID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Person].[FK_BusinessEntityAddress_BusinessEntity_BusinessEntityID]') AND parent_object_id = OBJECT_ID('[Person].[BusinessEntityAddress]')) +BEGIN + ALTER TABLE [Person].[BusinessEntityAddress] WITH CHECK ADD CONSTRAINT [FK_BusinessEntityAddress_BusinessEntity_BusinessEntityID] FOREIGN KEY ([BusinessEntityID]) REFERENCES [Person].[BusinessEntity] ([BusinessEntityID]) + ALTER TABLE [Person].[BusinessEntityAddress] CHECK CONSTRAINT [FK_BusinessEntityAddress_BusinessEntity_BusinessEntityID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Person].[BusinessEntityAddress]') AND name = 'AK_BusinessEntityAddress_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_BusinessEntityAddress_rowguid] ON [Person].[BusinessEntityAddress]([rowguid] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Person].[BusinessEntityAddress]') AND name = 'IX_BusinessEntityAddress_AddressID') +CREATE NONCLUSTERED INDEX [IX_BusinessEntityAddress_AddressID] ON [Person].[BusinessEntityAddress]([AddressID] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Person].[BusinessEntityAddress]') AND name = 'IX_BusinessEntityAddress_AddressTypeID') +CREATE NONCLUSTERED INDEX [IX_BusinessEntityAddress_AddressTypeID] ON [Person].[BusinessEntityAddress]([AddressTypeID] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Person.BusinessEntityContact.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Person.BusinessEntityContact.sql new file mode 100644 index 0000000..2e80209 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Person.BusinessEntityContact.sql @@ -0,0 +1,42 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Person].[BusinessEntityContact]') AND type = 'U') +CREATE TABLE [Person].[BusinessEntityContact] +( + [BusinessEntityID] int NOT NULL, + [PersonID] int NOT NULL, + [ContactTypeID] int NOT NULL, + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_BusinessEntityContact_BusinessEntityID_PersonID_ContactTypeID] PRIMARY KEY CLUSTERED + ( + [BusinessEntityID] ASC, + [PersonID] ASC, + [ContactTypeID] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Person].[FK_BusinessEntityContact_Person_PersonID]') AND parent_object_id = OBJECT_ID('[Person].[BusinessEntityContact]')) +BEGIN + ALTER TABLE [Person].[BusinessEntityContact] WITH CHECK ADD CONSTRAINT [FK_BusinessEntityContact_Person_PersonID] FOREIGN KEY ([PersonID]) REFERENCES [Person].[Person] ([BusinessEntityID]) + ALTER TABLE [Person].[BusinessEntityContact] CHECK CONSTRAINT [FK_BusinessEntityContact_Person_PersonID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Person].[FK_BusinessEntityContact_ContactType_ContactTypeID]') AND parent_object_id = OBJECT_ID('[Person].[BusinessEntityContact]')) +BEGIN + ALTER TABLE [Person].[BusinessEntityContact] WITH CHECK ADD CONSTRAINT [FK_BusinessEntityContact_ContactType_ContactTypeID] FOREIGN KEY ([ContactTypeID]) REFERENCES [Person].[ContactType] ([ContactTypeID]) + ALTER TABLE [Person].[BusinessEntityContact] CHECK CONSTRAINT [FK_BusinessEntityContact_ContactType_ContactTypeID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Person].[FK_BusinessEntityContact_BusinessEntity_BusinessEntityID]') AND parent_object_id = OBJECT_ID('[Person].[BusinessEntityContact]')) +BEGIN + ALTER TABLE [Person].[BusinessEntityContact] WITH CHECK ADD CONSTRAINT [FK_BusinessEntityContact_BusinessEntity_BusinessEntityID] FOREIGN KEY ([BusinessEntityID]) REFERENCES [Person].[BusinessEntity] ([BusinessEntityID]) + ALTER TABLE [Person].[BusinessEntityContact] CHECK CONSTRAINT [FK_BusinessEntityContact_BusinessEntity_BusinessEntityID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Person].[BusinessEntityContact]') AND name = 'AK_BusinessEntityContact_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_BusinessEntityContact_rowguid] ON [Person].[BusinessEntityContact]([rowguid] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Person].[BusinessEntityContact]') AND name = 'IX_BusinessEntityContact_ContactTypeID') +CREATE NONCLUSTERED INDEX [IX_BusinessEntityContact_ContactTypeID] ON [Person].[BusinessEntityContact]([ContactTypeID] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Person].[BusinessEntityContact]') AND name = 'IX_BusinessEntityContact_PersonID') +CREATE NONCLUSTERED INDEX [IX_BusinessEntityContact_PersonID] ON [Person].[BusinessEntityContact]([PersonID] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Person.ContactType.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Person.ContactType.sql new file mode 100644 index 0000000..405b993 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Person.ContactType.sql @@ -0,0 +1,11 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Person].[ContactType]') AND type = 'U') +CREATE TABLE [Person].[ContactType] +( + [ContactTypeID] int NOT NULL IDENTITY(1, 1), + [Name] Name NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_ContactType_ContactTypeID] PRIMARY KEY CLUSTERED ([ContactTypeID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Person].[ContactType]') AND name = 'AK_ContactType_Name') +CREATE UNIQUE NONCLUSTERED INDEX [AK_ContactType_Name] ON [Person].[ContactType]([Name] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Person.CountryRegion.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Person.CountryRegion.sql new file mode 100644 index 0000000..ebe2601 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Person.CountryRegion.sql @@ -0,0 +1,11 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Person].[CountryRegion]') AND type = 'U') +CREATE TABLE [Person].[CountryRegion] +( + [CountryRegionCode] nvarchar(3) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [Name] Name NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_CountryRegion_CountryRegionCode] PRIMARY KEY CLUSTERED ([CountryRegionCode] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Person].[CountryRegion]') AND name = 'AK_CountryRegion_Name') +CREATE UNIQUE NONCLUSTERED INDEX [AK_CountryRegion_Name] ON [Person].[CountryRegion]([Name] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Person.EmailAddress.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Person.EmailAddress.sql new file mode 100644 index 0000000..0686e34 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Person.EmailAddress.sql @@ -0,0 +1,23 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Person].[EmailAddress]') AND type = 'U') +CREATE TABLE [Person].[EmailAddress] +( + [BusinessEntityID] int NOT NULL, + [EmailAddressID] int NOT NULL IDENTITY(1, 1), + [EmailAddress] nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_EmailAddress_BusinessEntityID_EmailAddressID] PRIMARY KEY CLUSTERED + ( + [BusinessEntityID] ASC, + [EmailAddressID] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Person].[FK_EmailAddress_Person_BusinessEntityID]') AND parent_object_id = OBJECT_ID('[Person].[EmailAddress]')) +BEGIN + ALTER TABLE [Person].[EmailAddress] WITH CHECK ADD CONSTRAINT [FK_EmailAddress_Person_BusinessEntityID] FOREIGN KEY ([BusinessEntityID]) REFERENCES [Person].[Person] ([BusinessEntityID]) + ALTER TABLE [Person].[EmailAddress] CHECK CONSTRAINT [FK_EmailAddress_Person_BusinessEntityID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Person].[EmailAddress]') AND name = 'IX_EmailAddress_EmailAddress') +CREATE NONCLUSTERED INDEX [IX_EmailAddress_EmailAddress] ON [Person].[EmailAddress]([EmailAddress] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Person.Password.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Person.Password.sql new file mode 100644 index 0000000..ae52518 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Person.Password.sql @@ -0,0 +1,16 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Person].[Password]') AND type = 'U') +CREATE TABLE [Person].[Password] +( + [BusinessEntityID] int NOT NULL, + [PasswordHash] varchar(128) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [PasswordSalt] varchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_Password_BusinessEntityID] PRIMARY KEY CLUSTERED ([BusinessEntityID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Person].[FK_Password_Person_BusinessEntityID]') AND parent_object_id = OBJECT_ID('[Person].[Password]')) +BEGIN + ALTER TABLE [Person].[Password] WITH CHECK ADD CONSTRAINT [FK_Password_Person_BusinessEntityID] FOREIGN KEY ([BusinessEntityID]) REFERENCES [Person].[Person] ([BusinessEntityID]) + ALTER TABLE [Person].[Password] CHECK CONSTRAINT [FK_Password_Person_BusinessEntityID] +END \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Person.Person.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Person.Person.sql new file mode 100644 index 0000000..6534503 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Person.Person.sql @@ -0,0 +1,34 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Person].[Person]') AND type = 'U') +CREATE TABLE [Person].[Person] +( + [BusinessEntityID] int NOT NULL, + [PersonType] nchar(2) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [NameStyle] NameStyle NOT NULL DEFAULT((0)), + [Title] nvarchar(8) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [FirstName] Name NOT NULL, + [MiddleName] Name NULL, + [LastName] Name NOT NULL, + [Suffix] nvarchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EmailPromotion] int NOT NULL DEFAULT((0)), + [AdditionalContactInfo] xml NULL, + [Demographics] xml NULL, + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_Person_BusinessEntityID] PRIMARY KEY CLUSTERED ([BusinessEntityID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Person].[FK_Person_BusinessEntity_BusinessEntityID]') AND parent_object_id = OBJECT_ID('[Person].[Person]')) +BEGIN + ALTER TABLE [Person].[Person] WITH CHECK ADD CONSTRAINT [FK_Person_BusinessEntity_BusinessEntityID] FOREIGN KEY ([BusinessEntityID]) REFERENCES [Person].[BusinessEntity] ([BusinessEntityID]) + ALTER TABLE [Person].[Person] CHECK CONSTRAINT [FK_Person_BusinessEntity_BusinessEntityID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Person].[Person]') AND name = 'AK_Person_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_Person_rowguid] ON [Person].[Person]([rowguid] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Person].[Person]') AND name = 'IX_Person_LastName_FirstName_MiddleName') +CREATE NONCLUSTERED INDEX [IX_Person_LastName_FirstName_MiddleName] ON [Person].[Person]( + [LastName] ASC, + [FirstName] ASC, + [MiddleName] ASC +) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Person.PersonPhone.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Person.PersonPhone.sql new file mode 100644 index 0000000..7957b15 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Person.PersonPhone.sql @@ -0,0 +1,29 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Person].[PersonPhone]') AND type = 'U') +CREATE TABLE [Person].[PersonPhone] +( + [BusinessEntityID] int NOT NULL, + [PhoneNumber] Phone NOT NULL, + [PhoneNumberTypeID] int NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_PersonPhone_BusinessEntityID_PhoneNumber_PhoneNumberTypeID] PRIMARY KEY CLUSTERED + ( + [BusinessEntityID] ASC, + [PhoneNumber] ASC, + [PhoneNumberTypeID] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Person].[FK_PersonPhone_Person_BusinessEntityID]') AND parent_object_id = OBJECT_ID('[Person].[PersonPhone]')) +BEGIN + ALTER TABLE [Person].[PersonPhone] WITH CHECK ADD CONSTRAINT [FK_PersonPhone_Person_BusinessEntityID] FOREIGN KEY ([BusinessEntityID]) REFERENCES [Person].[Person] ([BusinessEntityID]) + ALTER TABLE [Person].[PersonPhone] CHECK CONSTRAINT [FK_PersonPhone_Person_BusinessEntityID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Person].[FK_PersonPhone_PhoneNumberType_PhoneNumberTypeID]') AND parent_object_id = OBJECT_ID('[Person].[PersonPhone]')) +BEGIN + ALTER TABLE [Person].[PersonPhone] WITH CHECK ADD CONSTRAINT [FK_PersonPhone_PhoneNumberType_PhoneNumberTypeID] FOREIGN KEY ([PhoneNumberTypeID]) REFERENCES [Person].[PhoneNumberType] ([PhoneNumberTypeID]) + ALTER TABLE [Person].[PersonPhone] CHECK CONSTRAINT [FK_PersonPhone_PhoneNumberType_PhoneNumberTypeID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Person].[PersonPhone]') AND name = 'IX_PersonPhone_PhoneNumber') +CREATE NONCLUSTERED INDEX [IX_PersonPhone_PhoneNumber] ON [Person].[PersonPhone]([PhoneNumber] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Person.PhoneNumberType.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Person.PhoneNumberType.sql new file mode 100644 index 0000000..1109a8c --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Person.PhoneNumberType.sql @@ -0,0 +1,8 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Person].[PhoneNumberType]') AND type = 'U') +CREATE TABLE [Person].[PhoneNumberType] +( + [PhoneNumberTypeID] int NOT NULL IDENTITY(1, 1), + [Name] Name NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_PhoneNumberType_PhoneNumberTypeID] PRIMARY KEY CLUSTERED ([PhoneNumberTypeID] ASC) +) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Person.StateProvince.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Person.StateProvince.sql new file mode 100644 index 0000000..fa46305 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Person.StateProvince.sql @@ -0,0 +1,37 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Person].[StateProvince]') AND type = 'U') +CREATE TABLE [Person].[StateProvince] +( + [StateProvinceID] int NOT NULL IDENTITY(1, 1), + [StateProvinceCode] nchar(3) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [CountryRegionCode] nvarchar(3) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [IsOnlyStateProvinceFlag] Flag NOT NULL DEFAULT((1)), + [Name] Name NOT NULL, + [TerritoryID] int NOT NULL, + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_StateProvince_StateProvinceID] PRIMARY KEY CLUSTERED ([StateProvinceID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Person].[FK_StateProvince_CountryRegion_CountryRegionCode]') AND parent_object_id = OBJECT_ID('[Person].[StateProvince]')) +BEGIN + ALTER TABLE [Person].[StateProvince] WITH CHECK ADD CONSTRAINT [FK_StateProvince_CountryRegion_CountryRegionCode] FOREIGN KEY ([CountryRegionCode]) REFERENCES [Person].[CountryRegion] ([CountryRegionCode]) + ALTER TABLE [Person].[StateProvince] CHECK CONSTRAINT [FK_StateProvince_CountryRegion_CountryRegionCode] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Person].[FK_StateProvince_SalesTerritory_TerritoryID]') AND parent_object_id = OBJECT_ID('[Person].[StateProvince]')) +BEGIN + ALTER TABLE [Person].[StateProvince] WITH CHECK ADD CONSTRAINT [FK_StateProvince_SalesTerritory_TerritoryID] FOREIGN KEY ([TerritoryID]) REFERENCES [Sales].[SalesTerritory] ([TerritoryID]) + ALTER TABLE [Person].[StateProvince] CHECK CONSTRAINT [FK_StateProvince_SalesTerritory_TerritoryID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Person].[StateProvince]') AND name = 'AK_StateProvince_Name') +CREATE UNIQUE NONCLUSTERED INDEX [AK_StateProvince_Name] ON [Person].[StateProvince]([Name] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Person].[StateProvince]') AND name = 'AK_StateProvince_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_StateProvince_rowguid] ON [Person].[StateProvince]([rowguid] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Person].[StateProvince]') AND name = 'AK_StateProvince_StateProvinceCode_CountryRegionCode') +CREATE UNIQUE NONCLUSTERED INDEX [AK_StateProvince_StateProvinceCode_CountryRegionCode] ON [Person].[StateProvince]( + [StateProvinceCode] ASC, + [CountryRegionCode] ASC +) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.BillOfMaterials.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.BillOfMaterials.sql new file mode 100644 index 0000000..2c2953a --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.BillOfMaterials.sql @@ -0,0 +1,42 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[BillOfMaterials]') AND type = 'U') +CREATE TABLE [Production].[BillOfMaterials] +( + [BillOfMaterialsID] int NOT NULL IDENTITY(1, 1), + [ProductAssemblyID] int NULL, + [ComponentID] int NOT NULL, + [StartDate] datetime NOT NULL DEFAULT(getdate()), + [EndDate] datetime NULL, + [UnitMeasureCode] nchar(3) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [BOMLevel] smallint NOT NULL, + [PerAssemblyQty] decimal(8, 2) NOT NULL DEFAULT((1.00)), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_BillOfMaterials_BillOfMaterialsID] PRIMARY KEY NONCLUSTERED ([BillOfMaterialsID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_BillOfMaterials_Product_ProductAssemblyID]') AND parent_object_id = OBJECT_ID('[Production].[BillOfMaterials]')) +BEGIN + ALTER TABLE [Production].[BillOfMaterials] WITH CHECK ADD CONSTRAINT [FK_BillOfMaterials_Product_ProductAssemblyID] FOREIGN KEY ([ProductAssemblyID]) REFERENCES [Production].[Product] ([ProductID]) + ALTER TABLE [Production].[BillOfMaterials] CHECK CONSTRAINT [FK_BillOfMaterials_Product_ProductAssemblyID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_BillOfMaterials_Product_ComponentID]') AND parent_object_id = OBJECT_ID('[Production].[BillOfMaterials]')) +BEGIN + ALTER TABLE [Production].[BillOfMaterials] WITH CHECK ADD CONSTRAINT [FK_BillOfMaterials_Product_ComponentID] FOREIGN KEY ([ComponentID]) REFERENCES [Production].[Product] ([ProductID]) + ALTER TABLE [Production].[BillOfMaterials] CHECK CONSTRAINT [FK_BillOfMaterials_Product_ComponentID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_BillOfMaterials_UnitMeasure_UnitMeasureCode]') AND parent_object_id = OBJECT_ID('[Production].[BillOfMaterials]')) +BEGIN + ALTER TABLE [Production].[BillOfMaterials] WITH CHECK ADD CONSTRAINT [FK_BillOfMaterials_UnitMeasure_UnitMeasureCode] FOREIGN KEY ([UnitMeasureCode]) REFERENCES [Production].[UnitMeasure] ([UnitMeasureCode]) + ALTER TABLE [Production].[BillOfMaterials] CHECK CONSTRAINT [FK_BillOfMaterials_UnitMeasure_UnitMeasureCode] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[BillOfMaterials]') AND name = 'AK_BillOfMaterials_ProductAssemblyID_ComponentID_StartDate') +CREATE UNIQUE CLUSTERED INDEX [AK_BillOfMaterials_ProductAssemblyID_ComponentID_StartDate] ON [Production].[BillOfMaterials]( + [ProductAssemblyID] ASC, + [ComponentID] ASC, + [StartDate] ASC +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[BillOfMaterials]') AND name = 'IX_BillOfMaterials_UnitMeasureCode') +CREATE NONCLUSTERED INDEX [IX_BillOfMaterials_UnitMeasureCode] ON [Production].[BillOfMaterials]([UnitMeasureCode] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.Culture.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.Culture.sql new file mode 100644 index 0000000..cbedfbd --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.Culture.sql @@ -0,0 +1,11 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[Culture]') AND type = 'U') +CREATE TABLE [Production].[Culture] +( + [CultureID] nchar(6) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [Name] Name NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_Culture_CultureID] PRIMARY KEY CLUSTERED ([CultureID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[Culture]') AND name = 'AK_Culture_Name') +CREATE UNIQUE NONCLUSTERED INDEX [AK_Culture_Name] ON [Production].[Culture]([Name] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.Document.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.Document.sql new file mode 100644 index 0000000..26037c3 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.Document.sql @@ -0,0 +1,43 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[Document]') AND type = 'U') +CREATE TABLE [Production].[Document] +( + [DocumentNode] hierarchyid NOT NULL, + [DocumentLevel] AS ([DocumentNode].[GetLevel]()), + [Title] nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [Owner] int NOT NULL, + [FolderFlag] bit NOT NULL DEFAULT((0)), + [FileName] nvarchar(400) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [FileExtension] nvarchar(8) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [Revision] nchar(5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [ChangeNumber] int NOT NULL DEFAULT((0)), + [Status] tinyint NOT NULL, + [DocumentSummary] nvarchar(max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [Document] varbinary(max) NULL, + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_Document_DocumentNode] PRIMARY KEY CLUSTERED ([DocumentNode] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_Document_Employee_Owner]') AND parent_object_id = OBJECT_ID('[Production].[Document]')) +BEGIN + ALTER TABLE [Production].[Document] WITH CHECK ADD CONSTRAINT [FK_Document_Employee_Owner] FOREIGN KEY ([Owner]) REFERENCES [HumanResources].[Employee] ([BusinessEntityID]) + ALTER TABLE [Production].[Document] CHECK CONSTRAINT [FK_Document_Employee_Owner] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[Document]') AND name = 'AK_Document_DocumentLevel_DocumentNode') +CREATE UNIQUE NONCLUSTERED INDEX [AK_Document_DocumentLevel_DocumentNode] ON [Production].[Document]( + [DocumentLevel] ASC, + [DocumentNode] ASC +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[Document]') AND name = 'AK_Document_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_Document_rowguid] ON [Production].[Document]([rowguid] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[Document]') AND name = 'IX_Document_FileName_Revision') +CREATE NONCLUSTERED INDEX [IX_Document_FileName_Revision] ON [Production].[Document]( + [FileName] ASC, + [Revision] ASC +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[Document]') AND name = 'UQ__Document__F73921F7C5112C2E') +CREATE UNIQUE NONCLUSTERED INDEX [UQ__Document__F73921F7C5112C2E] ON [Production].[Document]([rowguid] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.Illustration.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.Illustration.sql new file mode 100644 index 0000000..60f6e84 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.Illustration.sql @@ -0,0 +1,8 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[Illustration]') AND type = 'U') +CREATE TABLE [Production].[Illustration] +( + [IllustrationID] int NOT NULL IDENTITY(1, 1), + [Diagram] xml NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_Illustration_IllustrationID] PRIMARY KEY CLUSTERED ([IllustrationID] ASC) +) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.Location.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.Location.sql new file mode 100644 index 0000000..c7fe1ff --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.Location.sql @@ -0,0 +1,13 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[Location]') AND type = 'U') +CREATE TABLE [Production].[Location] +( + [LocationID] smallint NOT NULL IDENTITY(1, 1), + [Name] Name NOT NULL, + [CostRate] smallmoney NOT NULL DEFAULT((0.00)), + [Availability] decimal(8, 2) NOT NULL DEFAULT((0.00)), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_Location_LocationID] PRIMARY KEY CLUSTERED ([LocationID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[Location]') AND name = 'AK_Location_Name') +CREATE UNIQUE NONCLUSTERED INDEX [AK_Location_Name] ON [Production].[Location]([Name] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.Product.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.Product.sql new file mode 100644 index 0000000..aa10d6c --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.Product.sql @@ -0,0 +1,63 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[Product]') AND type = 'U') +CREATE TABLE [Production].[Product] +( + [ProductID] int NOT NULL IDENTITY(1, 1), + [Name] Name NOT NULL, + [ProductNumber] nvarchar(25) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [MakeFlag] Flag NOT NULL DEFAULT((1)), + [FinishedGoodsFlag] Flag NOT NULL DEFAULT((1)), + [Color] nvarchar(15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SafetyStockLevel] smallint NOT NULL, + [ReorderPoint] smallint NOT NULL, + [StandardCost] money NOT NULL, + [ListPrice] money NOT NULL, + [Size] nvarchar(5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SizeUnitMeasureCode] nchar(3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [WeightUnitMeasureCode] nchar(3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [Weight] decimal(8, 2) NULL, + [DaysToManufacture] int NOT NULL, + [ProductLine] nchar(2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [Class] nchar(2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [Style] nchar(2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ProductSubcategoryID] int NULL, + [ProductModelID] int NULL, + [SellStartDate] datetime NOT NULL, + [SellEndDate] datetime NULL, + [DiscontinuedDate] datetime NULL, + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_Product_ProductID] PRIMARY KEY CLUSTERED ([ProductID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_Product_UnitMeasure_SizeUnitMeasureCode]') AND parent_object_id = OBJECT_ID('[Production].[Product]')) +BEGIN + ALTER TABLE [Production].[Product] WITH CHECK ADD CONSTRAINT [FK_Product_UnitMeasure_SizeUnitMeasureCode] FOREIGN KEY ([SizeUnitMeasureCode]) REFERENCES [Production].[UnitMeasure] ([UnitMeasureCode]) + ALTER TABLE [Production].[Product] CHECK CONSTRAINT [FK_Product_UnitMeasure_SizeUnitMeasureCode] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_Product_UnitMeasure_WeightUnitMeasureCode]') AND parent_object_id = OBJECT_ID('[Production].[Product]')) +BEGIN + ALTER TABLE [Production].[Product] WITH CHECK ADD CONSTRAINT [FK_Product_UnitMeasure_WeightUnitMeasureCode] FOREIGN KEY ([WeightUnitMeasureCode]) REFERENCES [Production].[UnitMeasure] ([UnitMeasureCode]) + ALTER TABLE [Production].[Product] CHECK CONSTRAINT [FK_Product_UnitMeasure_WeightUnitMeasureCode] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_Product_ProductModel_ProductModelID]') AND parent_object_id = OBJECT_ID('[Production].[Product]')) +BEGIN + ALTER TABLE [Production].[Product] WITH CHECK ADD CONSTRAINT [FK_Product_ProductModel_ProductModelID] FOREIGN KEY ([ProductModelID]) REFERENCES [Production].[ProductModel] ([ProductModelID]) + ALTER TABLE [Production].[Product] CHECK CONSTRAINT [FK_Product_ProductModel_ProductModelID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_Product_ProductSubcategory_ProductSubcategoryID]') AND parent_object_id = OBJECT_ID('[Production].[Product]')) +BEGIN + ALTER TABLE [Production].[Product] WITH CHECK ADD CONSTRAINT [FK_Product_ProductSubcategory_ProductSubcategoryID] FOREIGN KEY ([ProductSubcategoryID]) REFERENCES [Production].[ProductSubcategory] ([ProductSubcategoryID]) + ALTER TABLE [Production].[Product] CHECK CONSTRAINT [FK_Product_ProductSubcategory_ProductSubcategoryID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[Product]') AND name = 'AK_Product_Name') +CREATE UNIQUE NONCLUSTERED INDEX [AK_Product_Name] ON [Production].[Product]([Name] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[Product]') AND name = 'AK_Product_ProductNumber') +CREATE UNIQUE NONCLUSTERED INDEX [AK_Product_ProductNumber] ON [Production].[Product]([ProductNumber] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[Product]') AND name = 'AK_Product_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_Product_rowguid] ON [Production].[Product]([rowguid] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductCategory.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductCategory.sql new file mode 100644 index 0000000..f554f41 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductCategory.sql @@ -0,0 +1,15 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[ProductCategory]') AND type = 'U') +CREATE TABLE [Production].[ProductCategory] +( + [ProductCategoryID] int NOT NULL IDENTITY(1, 1), + [Name] Name NOT NULL, + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_ProductCategory_ProductCategoryID] PRIMARY KEY CLUSTERED ([ProductCategoryID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[ProductCategory]') AND name = 'AK_ProductCategory_Name') +CREATE UNIQUE NONCLUSTERED INDEX [AK_ProductCategory_Name] ON [Production].[ProductCategory]([Name] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[ProductCategory]') AND name = 'AK_ProductCategory_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_ProductCategory_rowguid] ON [Production].[ProductCategory]([rowguid] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductCostHistory.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductCostHistory.sql new file mode 100644 index 0000000..a7cf6ec --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductCostHistory.sql @@ -0,0 +1,20 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[ProductCostHistory]') AND type = 'U') +CREATE TABLE [Production].[ProductCostHistory] +( + [ProductID] int NOT NULL, + [StartDate] datetime NOT NULL, + [EndDate] datetime NULL, + [StandardCost] money NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_ProductCostHistory_ProductID_StartDate] PRIMARY KEY CLUSTERED + ( + [ProductID] ASC, + [StartDate] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_ProductCostHistory_Product_ProductID]') AND parent_object_id = OBJECT_ID('[Production].[ProductCostHistory]')) +BEGIN + ALTER TABLE [Production].[ProductCostHistory] WITH CHECK ADD CONSTRAINT [FK_ProductCostHistory_Product_ProductID] FOREIGN KEY ([ProductID]) REFERENCES [Production].[Product] ([ProductID]) + ALTER TABLE [Production].[ProductCostHistory] CHECK CONSTRAINT [FK_ProductCostHistory_Product_ProductID] +END \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductDescription.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductDescription.sql new file mode 100644 index 0000000..f151649 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductDescription.sql @@ -0,0 +1,12 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[ProductDescription]') AND type = 'U') +CREATE TABLE [Production].[ProductDescription] +( + [ProductDescriptionID] int NOT NULL IDENTITY(1, 1), + [Description] nvarchar(400) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_ProductDescription_ProductDescriptionID] PRIMARY KEY CLUSTERED ([ProductDescriptionID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[ProductDescription]') AND name = 'AK_ProductDescription_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_ProductDescription_rowguid] ON [Production].[ProductDescription]([rowguid] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductDocument.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductDocument.sql new file mode 100644 index 0000000..c837f36 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductDocument.sql @@ -0,0 +1,24 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[ProductDocument]') AND type = 'U') +CREATE TABLE [Production].[ProductDocument] +( + [ProductID] int NOT NULL, + [DocumentNode] hierarchyid NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_ProductDocument_ProductID_DocumentNode] PRIMARY KEY CLUSTERED + ( + [ProductID] ASC, + [DocumentNode] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_ProductDocument_Product_ProductID]') AND parent_object_id = OBJECT_ID('[Production].[ProductDocument]')) +BEGIN + ALTER TABLE [Production].[ProductDocument] WITH CHECK ADD CONSTRAINT [FK_ProductDocument_Product_ProductID] FOREIGN KEY ([ProductID]) REFERENCES [Production].[Product] ([ProductID]) + ALTER TABLE [Production].[ProductDocument] CHECK CONSTRAINT [FK_ProductDocument_Product_ProductID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_ProductDocument_Document_DocumentNode]') AND parent_object_id = OBJECT_ID('[Production].[ProductDocument]')) +BEGIN + ALTER TABLE [Production].[ProductDocument] WITH CHECK ADD CONSTRAINT [FK_ProductDocument_Document_DocumentNode] FOREIGN KEY ([DocumentNode]) REFERENCES [Production].[Document] ([DocumentNode]) + ALTER TABLE [Production].[ProductDocument] CHECK CONSTRAINT [FK_ProductDocument_Document_DocumentNode] +END \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductInventory.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductInventory.sql new file mode 100644 index 0000000..8c83e22 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductInventory.sql @@ -0,0 +1,28 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[ProductInventory]') AND type = 'U') +CREATE TABLE [Production].[ProductInventory] +( + [ProductID] int NOT NULL, + [LocationID] smallint NOT NULL, + [Shelf] nvarchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [Bin] tinyint NOT NULL, + [Quantity] smallint NOT NULL DEFAULT((0)), + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_ProductInventory_ProductID_LocationID] PRIMARY KEY CLUSTERED + ( + [ProductID] ASC, + [LocationID] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_ProductInventory_Location_LocationID]') AND parent_object_id = OBJECT_ID('[Production].[ProductInventory]')) +BEGIN + ALTER TABLE [Production].[ProductInventory] WITH CHECK ADD CONSTRAINT [FK_ProductInventory_Location_LocationID] FOREIGN KEY ([LocationID]) REFERENCES [Production].[Location] ([LocationID]) + ALTER TABLE [Production].[ProductInventory] CHECK CONSTRAINT [FK_ProductInventory_Location_LocationID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_ProductInventory_Product_ProductID]') AND parent_object_id = OBJECT_ID('[Production].[ProductInventory]')) +BEGIN + ALTER TABLE [Production].[ProductInventory] WITH CHECK ADD CONSTRAINT [FK_ProductInventory_Product_ProductID] FOREIGN KEY ([ProductID]) REFERENCES [Production].[Product] ([ProductID]) + ALTER TABLE [Production].[ProductInventory] CHECK CONSTRAINT [FK_ProductInventory_Product_ProductID] +END \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductListPriceHistory.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductListPriceHistory.sql new file mode 100644 index 0000000..897b62a --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductListPriceHistory.sql @@ -0,0 +1,20 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[ProductListPriceHistory]') AND type = 'U') +CREATE TABLE [Production].[ProductListPriceHistory] +( + [ProductID] int NOT NULL, + [StartDate] datetime NOT NULL, + [EndDate] datetime NULL, + [ListPrice] money NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_ProductListPriceHistory_ProductID_StartDate] PRIMARY KEY CLUSTERED + ( + [ProductID] ASC, + [StartDate] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_ProductListPriceHistory_Product_ProductID]') AND parent_object_id = OBJECT_ID('[Production].[ProductListPriceHistory]')) +BEGIN + ALTER TABLE [Production].[ProductListPriceHistory] WITH CHECK ADD CONSTRAINT [FK_ProductListPriceHistory_Product_ProductID] FOREIGN KEY ([ProductID]) REFERENCES [Production].[Product] ([ProductID]) + ALTER TABLE [Production].[ProductListPriceHistory] CHECK CONSTRAINT [FK_ProductListPriceHistory_Product_ProductID] +END \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductModel.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductModel.sql new file mode 100644 index 0000000..1dfecc2 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductModel.sql @@ -0,0 +1,17 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[ProductModel]') AND type = 'U') +CREATE TABLE [Production].[ProductModel] +( + [ProductModelID] int NOT NULL IDENTITY(1, 1), + [Name] Name NOT NULL, + [CatalogDescription] xml NULL, + [Instructions] xml NULL, + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_ProductModel_ProductModelID] PRIMARY KEY CLUSTERED ([ProductModelID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[ProductModel]') AND name = 'AK_ProductModel_Name') +CREATE UNIQUE NONCLUSTERED INDEX [AK_ProductModel_Name] ON [Production].[ProductModel]([Name] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[ProductModel]') AND name = 'AK_ProductModel_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_ProductModel_rowguid] ON [Production].[ProductModel]([rowguid] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductModelIllustration.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductModelIllustration.sql new file mode 100644 index 0000000..dd575ca --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductModelIllustration.sql @@ -0,0 +1,24 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[ProductModelIllustration]') AND type = 'U') +CREATE TABLE [Production].[ProductModelIllustration] +( + [ProductModelID] int NOT NULL, + [IllustrationID] int NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_ProductModelIllustration_ProductModelID_IllustrationID] PRIMARY KEY CLUSTERED + ( + [ProductModelID] ASC, + [IllustrationID] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_ProductModelIllustration_ProductModel_ProductModelID]') AND parent_object_id = OBJECT_ID('[Production].[ProductModelIllustration]')) +BEGIN + ALTER TABLE [Production].[ProductModelIllustration] WITH CHECK ADD CONSTRAINT [FK_ProductModelIllustration_ProductModel_ProductModelID] FOREIGN KEY ([ProductModelID]) REFERENCES [Production].[ProductModel] ([ProductModelID]) + ALTER TABLE [Production].[ProductModelIllustration] CHECK CONSTRAINT [FK_ProductModelIllustration_ProductModel_ProductModelID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_ProductModelIllustration_Illustration_IllustrationID]') AND parent_object_id = OBJECT_ID('[Production].[ProductModelIllustration]')) +BEGIN + ALTER TABLE [Production].[ProductModelIllustration] WITH CHECK ADD CONSTRAINT [FK_ProductModelIllustration_Illustration_IllustrationID] FOREIGN KEY ([IllustrationID]) REFERENCES [Production].[Illustration] ([IllustrationID]) + ALTER TABLE [Production].[ProductModelIllustration] CHECK CONSTRAINT [FK_ProductModelIllustration_Illustration_IllustrationID] +END \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductModelProductDescriptionCulture.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductModelProductDescriptionCulture.sql new file mode 100644 index 0000000..a9d5189 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductModelProductDescriptionCulture.sql @@ -0,0 +1,32 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[ProductModelProductDescriptionCulture]') AND type = 'U') +CREATE TABLE [Production].[ProductModelProductDescriptionCulture] +( + [ProductModelID] int NOT NULL, + [ProductDescriptionID] int NOT NULL, + [CultureID] nchar(6) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_ProductModelProductDescriptionCulture_ProductModelID_ProductDescriptionID_CultureID] PRIMARY KEY CLUSTERED + ( + [ProductModelID] ASC, + [ProductDescriptionID] ASC, + [CultureID] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_ProductModelProductDescriptionCulture_ProductDescription_ProductDescriptionID]') AND parent_object_id = OBJECT_ID('[Production].[ProductModelProductDescriptionCulture]')) +BEGIN + ALTER TABLE [Production].[ProductModelProductDescriptionCulture] WITH CHECK ADD CONSTRAINT [FK_ProductModelProductDescriptionCulture_ProductDescription_ProductDescriptionID] FOREIGN KEY ([ProductDescriptionID]) REFERENCES [Production].[ProductDescription] ([ProductDescriptionID]) + ALTER TABLE [Production].[ProductModelProductDescriptionCulture] CHECK CONSTRAINT [FK_ProductModelProductDescriptionCulture_ProductDescription_ProductDescriptionID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_ProductModelProductDescriptionCulture_Culture_CultureID]') AND parent_object_id = OBJECT_ID('[Production].[ProductModelProductDescriptionCulture]')) +BEGIN + ALTER TABLE [Production].[ProductModelProductDescriptionCulture] WITH CHECK ADD CONSTRAINT [FK_ProductModelProductDescriptionCulture_Culture_CultureID] FOREIGN KEY ([CultureID]) REFERENCES [Production].[Culture] ([CultureID]) + ALTER TABLE [Production].[ProductModelProductDescriptionCulture] CHECK CONSTRAINT [FK_ProductModelProductDescriptionCulture_Culture_CultureID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_ProductModelProductDescriptionCulture_ProductModel_ProductModelID]') AND parent_object_id = OBJECT_ID('[Production].[ProductModelProductDescriptionCulture]')) +BEGIN + ALTER TABLE [Production].[ProductModelProductDescriptionCulture] WITH CHECK ADD CONSTRAINT [FK_ProductModelProductDescriptionCulture_ProductModel_ProductModelID] FOREIGN KEY ([ProductModelID]) REFERENCES [Production].[ProductModel] ([ProductModelID]) + ALTER TABLE [Production].[ProductModelProductDescriptionCulture] CHECK CONSTRAINT [FK_ProductModelProductDescriptionCulture_ProductModel_ProductModelID] +END \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductPhoto.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductPhoto.sql new file mode 100644 index 0000000..4644678 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductPhoto.sql @@ -0,0 +1,11 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[ProductPhoto]') AND type = 'U') +CREATE TABLE [Production].[ProductPhoto] +( + [ProductPhotoID] int NOT NULL IDENTITY(1, 1), + [ThumbNailPhoto] varbinary(max) NULL, + [ThumbnailPhotoFileName] nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LargePhoto] varbinary(max) NULL, + [LargePhotoFileName] nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_ProductPhoto_ProductPhotoID] PRIMARY KEY CLUSTERED ([ProductPhotoID] ASC) +) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductProductPhoto.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductProductPhoto.sql new file mode 100644 index 0000000..d38b0dc --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductProductPhoto.sql @@ -0,0 +1,25 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[ProductProductPhoto]') AND type = 'U') +CREATE TABLE [Production].[ProductProductPhoto] +( + [ProductID] int NOT NULL, + [ProductPhotoID] int NOT NULL, + [Primary] Flag NOT NULL DEFAULT((0)), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_ProductProductPhoto_ProductID_ProductPhotoID] PRIMARY KEY NONCLUSTERED + ( + [ProductID] ASC, + [ProductPhotoID] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_ProductProductPhoto_Product_ProductID]') AND parent_object_id = OBJECT_ID('[Production].[ProductProductPhoto]')) +BEGIN + ALTER TABLE [Production].[ProductProductPhoto] WITH CHECK ADD CONSTRAINT [FK_ProductProductPhoto_Product_ProductID] FOREIGN KEY ([ProductID]) REFERENCES [Production].[Product] ([ProductID]) + ALTER TABLE [Production].[ProductProductPhoto] CHECK CONSTRAINT [FK_ProductProductPhoto_Product_ProductID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_ProductProductPhoto_ProductPhoto_ProductPhotoID]') AND parent_object_id = OBJECT_ID('[Production].[ProductProductPhoto]')) +BEGIN + ALTER TABLE [Production].[ProductProductPhoto] WITH CHECK ADD CONSTRAINT [FK_ProductProductPhoto_ProductPhoto_ProductPhotoID] FOREIGN KEY ([ProductPhotoID]) REFERENCES [Production].[ProductPhoto] ([ProductPhotoID]) + ALTER TABLE [Production].[ProductProductPhoto] CHECK CONSTRAINT [FK_ProductProductPhoto_ProductPhoto_ProductPhotoID] +END \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductReview.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductReview.sql new file mode 100644 index 0000000..a009731 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductReview.sql @@ -0,0 +1,25 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[ProductReview]') AND type = 'U') +CREATE TABLE [Production].[ProductReview] +( + [ProductReviewID] int NOT NULL IDENTITY(1, 1), + [ProductID] int NOT NULL, + [ReviewerName] Name NOT NULL, + [ReviewDate] datetime NOT NULL DEFAULT(getdate()), + [EmailAddress] nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [Rating] int NOT NULL, + [Comments] nvarchar(3850) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_ProductReview_ProductReviewID] PRIMARY KEY CLUSTERED ([ProductReviewID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_ProductReview_Product_ProductID]') AND parent_object_id = OBJECT_ID('[Production].[ProductReview]')) +BEGIN + ALTER TABLE [Production].[ProductReview] WITH CHECK ADD CONSTRAINT [FK_ProductReview_Product_ProductID] FOREIGN KEY ([ProductID]) REFERENCES [Production].[Product] ([ProductID]) + ALTER TABLE [Production].[ProductReview] CHECK CONSTRAINT [FK_ProductReview_Product_ProductID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[ProductReview]') AND name = 'IX_ProductReview_ProductID_Name') +CREATE NONCLUSTERED INDEX [IX_ProductReview_ProductID_Name] ON [Production].[ProductReview]( + [ProductID] ASC, + [ReviewerName] ASC +) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductSubcategory.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductSubcategory.sql new file mode 100644 index 0000000..2195751 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ProductSubcategory.sql @@ -0,0 +1,22 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[ProductSubcategory]') AND type = 'U') +CREATE TABLE [Production].[ProductSubcategory] +( + [ProductSubcategoryID] int NOT NULL IDENTITY(1, 1), + [ProductCategoryID] int NOT NULL, + [Name] Name NOT NULL, + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_ProductSubcategory_ProductSubcategoryID] PRIMARY KEY CLUSTERED ([ProductSubcategoryID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_ProductSubcategory_ProductCategory_ProductCategoryID]') AND parent_object_id = OBJECT_ID('[Production].[ProductSubcategory]')) +BEGIN + ALTER TABLE [Production].[ProductSubcategory] WITH CHECK ADD CONSTRAINT [FK_ProductSubcategory_ProductCategory_ProductCategoryID] FOREIGN KEY ([ProductCategoryID]) REFERENCES [Production].[ProductCategory] ([ProductCategoryID]) + ALTER TABLE [Production].[ProductSubcategory] CHECK CONSTRAINT [FK_ProductSubcategory_ProductCategory_ProductCategoryID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[ProductSubcategory]') AND name = 'AK_ProductSubcategory_Name') +CREATE UNIQUE NONCLUSTERED INDEX [AK_ProductSubcategory_Name] ON [Production].[ProductSubcategory]([Name] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[ProductSubcategory]') AND name = 'AK_ProductSubcategory_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_ProductSubcategory_rowguid] ON [Production].[ProductSubcategory]([rowguid] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.ScrapReason.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ScrapReason.sql new file mode 100644 index 0000000..3b58cc2 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.ScrapReason.sql @@ -0,0 +1,11 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[ScrapReason]') AND type = 'U') +CREATE TABLE [Production].[ScrapReason] +( + [ScrapReasonID] smallint NOT NULL IDENTITY(1, 1), + [Name] Name NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_ScrapReason_ScrapReasonID] PRIMARY KEY CLUSTERED ([ScrapReasonID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[ScrapReason]') AND name = 'AK_ScrapReason_Name') +CREATE UNIQUE NONCLUSTERED INDEX [AK_ScrapReason_Name] ON [Production].[ScrapReason]([Name] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.TransactionHistory.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.TransactionHistory.sql new file mode 100644 index 0000000..82d6b3a --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.TransactionHistory.sql @@ -0,0 +1,29 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[TransactionHistory]') AND type = 'U') +CREATE TABLE [Production].[TransactionHistory] +( + [TransactionID] int NOT NULL IDENTITY(100000, 1), + [ProductID] int NOT NULL, + [ReferenceOrderID] int NOT NULL, + [ReferenceOrderLineID] int NOT NULL DEFAULT((0)), + [TransactionDate] datetime NOT NULL DEFAULT(getdate()), + [TransactionType] nchar(1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [Quantity] int NOT NULL, + [ActualCost] money NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_TransactionHistory_TransactionID] PRIMARY KEY CLUSTERED ([TransactionID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_TransactionHistory_Product_ProductID]') AND parent_object_id = OBJECT_ID('[Production].[TransactionHistory]')) +BEGIN + ALTER TABLE [Production].[TransactionHistory] WITH CHECK ADD CONSTRAINT [FK_TransactionHistory_Product_ProductID] FOREIGN KEY ([ProductID]) REFERENCES [Production].[Product] ([ProductID]) + ALTER TABLE [Production].[TransactionHistory] CHECK CONSTRAINT [FK_TransactionHistory_Product_ProductID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[TransactionHistory]') AND name = 'IX_TransactionHistory_ProductID') +CREATE NONCLUSTERED INDEX [IX_TransactionHistory_ProductID] ON [Production].[TransactionHistory]([ProductID] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[TransactionHistory]') AND name = 'IX_TransactionHistory_ReferenceOrderID_ReferenceOrderLineID') +CREATE NONCLUSTERED INDEX [IX_TransactionHistory_ReferenceOrderID_ReferenceOrderLineID] ON [Production].[TransactionHistory]( + [ReferenceOrderID] ASC, + [ReferenceOrderLineID] ASC +) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.TransactionHistoryArchive.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.TransactionHistoryArchive.sql new file mode 100644 index 0000000..2034e83 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.TransactionHistoryArchive.sql @@ -0,0 +1,23 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[TransactionHistoryArchive]') AND type = 'U') +CREATE TABLE [Production].[TransactionHistoryArchive] +( + [TransactionID] int NOT NULL, + [ProductID] int NOT NULL, + [ReferenceOrderID] int NOT NULL, + [ReferenceOrderLineID] int NOT NULL DEFAULT((0)), + [TransactionDate] datetime NOT NULL DEFAULT(getdate()), + [TransactionType] nchar(1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [Quantity] int NOT NULL, + [ActualCost] money NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_TransactionHistoryArchive_TransactionID] PRIMARY KEY CLUSTERED ([TransactionID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[TransactionHistoryArchive]') AND name = 'IX_TransactionHistoryArchive_ProductID') +CREATE NONCLUSTERED INDEX [IX_TransactionHistoryArchive_ProductID] ON [Production].[TransactionHistoryArchive]([ProductID] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[TransactionHistoryArchive]') AND name = 'IX_TransactionHistoryArchive_ReferenceOrderID_ReferenceOrderLineID') +CREATE NONCLUSTERED INDEX [IX_TransactionHistoryArchive_ReferenceOrderID_ReferenceOrderLineID] ON [Production].[TransactionHistoryArchive]( + [ReferenceOrderID] ASC, + [ReferenceOrderLineID] ASC +) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.UnitMeasure.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.UnitMeasure.sql new file mode 100644 index 0000000..184be57 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.UnitMeasure.sql @@ -0,0 +1,11 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[UnitMeasure]') AND type = 'U') +CREATE TABLE [Production].[UnitMeasure] +( + [UnitMeasureCode] nchar(3) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [Name] Name NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_UnitMeasure_UnitMeasureCode] PRIMARY KEY CLUSTERED ([UnitMeasureCode] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[UnitMeasure]') AND name = 'AK_UnitMeasure_Name') +CREATE UNIQUE NONCLUSTERED INDEX [AK_UnitMeasure_Name] ON [Production].[UnitMeasure]([Name] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.WorkOrder.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.WorkOrder.sql new file mode 100644 index 0000000..9d16195 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.WorkOrder.sql @@ -0,0 +1,33 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[WorkOrder]') AND type = 'U') +CREATE TABLE [Production].[WorkOrder] +( + [WorkOrderID] int NOT NULL IDENTITY(1, 1), + [ProductID] int NOT NULL, + [OrderQty] int NOT NULL, + [StockedQty] AS (isnull([OrderQty]-[ScrappedQty],(0))), + [ScrappedQty] smallint NOT NULL, + [StartDate] datetime NOT NULL, + [EndDate] datetime NULL, + [DueDate] datetime NOT NULL, + [ScrapReasonID] smallint NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_WorkOrder_WorkOrderID] PRIMARY KEY CLUSTERED ([WorkOrderID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_WorkOrder_Product_ProductID]') AND parent_object_id = OBJECT_ID('[Production].[WorkOrder]')) +BEGIN + ALTER TABLE [Production].[WorkOrder] WITH CHECK ADD CONSTRAINT [FK_WorkOrder_Product_ProductID] FOREIGN KEY ([ProductID]) REFERENCES [Production].[Product] ([ProductID]) + ALTER TABLE [Production].[WorkOrder] CHECK CONSTRAINT [FK_WorkOrder_Product_ProductID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_WorkOrder_ScrapReason_ScrapReasonID]') AND parent_object_id = OBJECT_ID('[Production].[WorkOrder]')) +BEGIN + ALTER TABLE [Production].[WorkOrder] WITH CHECK ADD CONSTRAINT [FK_WorkOrder_ScrapReason_ScrapReasonID] FOREIGN KEY ([ScrapReasonID]) REFERENCES [Production].[ScrapReason] ([ScrapReasonID]) + ALTER TABLE [Production].[WorkOrder] CHECK CONSTRAINT [FK_WorkOrder_ScrapReason_ScrapReasonID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[WorkOrder]') AND name = 'IX_WorkOrder_ProductID') +CREATE NONCLUSTERED INDEX [IX_WorkOrder_ProductID] ON [Production].[WorkOrder]([ProductID] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[WorkOrder]') AND name = 'IX_WorkOrder_ScrapReasonID') +CREATE NONCLUSTERED INDEX [IX_WorkOrder_ScrapReasonID] ON [Production].[WorkOrder]([ScrapReasonID] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Production.WorkOrderRouting.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Production.WorkOrderRouting.sql new file mode 100644 index 0000000..d276ab5 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Production.WorkOrderRouting.sql @@ -0,0 +1,37 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[WorkOrderRouting]') AND type = 'U') +CREATE TABLE [Production].[WorkOrderRouting] +( + [WorkOrderID] int NOT NULL, + [ProductID] int NOT NULL, + [OperationSequence] smallint NOT NULL, + [LocationID] smallint NOT NULL, + [ScheduledStartDate] datetime NOT NULL, + [ScheduledEndDate] datetime NOT NULL, + [ActualStartDate] datetime NULL, + [ActualEndDate] datetime NULL, + [ActualResourceHrs] decimal(9, 4) NULL, + [PlannedCost] money NOT NULL, + [ActualCost] money NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_WorkOrderRouting_WorkOrderID_ProductID_OperationSequence] PRIMARY KEY CLUSTERED + ( + [WorkOrderID] ASC, + [ProductID] ASC, + [OperationSequence] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_WorkOrderRouting_Location_LocationID]') AND parent_object_id = OBJECT_ID('[Production].[WorkOrderRouting]')) +BEGIN + ALTER TABLE [Production].[WorkOrderRouting] WITH CHECK ADD CONSTRAINT [FK_WorkOrderRouting_Location_LocationID] FOREIGN KEY ([LocationID]) REFERENCES [Production].[Location] ([LocationID]) + ALTER TABLE [Production].[WorkOrderRouting] CHECK CONSTRAINT [FK_WorkOrderRouting_Location_LocationID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Production].[FK_WorkOrderRouting_WorkOrder_WorkOrderID]') AND parent_object_id = OBJECT_ID('[Production].[WorkOrderRouting]')) +BEGIN + ALTER TABLE [Production].[WorkOrderRouting] WITH CHECK ADD CONSTRAINT [FK_WorkOrderRouting_WorkOrder_WorkOrderID] FOREIGN KEY ([WorkOrderID]) REFERENCES [Production].[WorkOrder] ([WorkOrderID]) + ALTER TABLE [Production].[WorkOrderRouting] CHECK CONSTRAINT [FK_WorkOrderRouting_WorkOrder_WorkOrderID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Production].[WorkOrderRouting]') AND name = 'IX_WorkOrderRouting_ProductID') +CREATE NONCLUSTERED INDEX [IX_WorkOrderRouting_ProductID] ON [Production].[WorkOrderRouting]([ProductID] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Purchasing.ProductVendor.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Purchasing.ProductVendor.sql new file mode 100644 index 0000000..17038c4 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Purchasing.ProductVendor.sql @@ -0,0 +1,44 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Purchasing].[ProductVendor]') AND type = 'U') +CREATE TABLE [Purchasing].[ProductVendor] +( + [ProductID] int NOT NULL, + [BusinessEntityID] int NOT NULL, + [AverageLeadTime] int NOT NULL, + [StandardPrice] money NOT NULL, + [LastReceiptCost] money NULL, + [LastReceiptDate] datetime NULL, + [MinOrderQty] int NOT NULL, + [MaxOrderQty] int NOT NULL, + [OnOrderQty] int NULL, + [UnitMeasureCode] nchar(3) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_ProductVendor_ProductID_BusinessEntityID] PRIMARY KEY CLUSTERED + ( + [ProductID] ASC, + [BusinessEntityID] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Purchasing].[FK_ProductVendor_Product_ProductID]') AND parent_object_id = OBJECT_ID('[Purchasing].[ProductVendor]')) +BEGIN + ALTER TABLE [Purchasing].[ProductVendor] WITH CHECK ADD CONSTRAINT [FK_ProductVendor_Product_ProductID] FOREIGN KEY ([ProductID]) REFERENCES [Production].[Product] ([ProductID]) + ALTER TABLE [Purchasing].[ProductVendor] CHECK CONSTRAINT [FK_ProductVendor_Product_ProductID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Purchasing].[FK_ProductVendor_UnitMeasure_UnitMeasureCode]') AND parent_object_id = OBJECT_ID('[Purchasing].[ProductVendor]')) +BEGIN + ALTER TABLE [Purchasing].[ProductVendor] WITH CHECK ADD CONSTRAINT [FK_ProductVendor_UnitMeasure_UnitMeasureCode] FOREIGN KEY ([UnitMeasureCode]) REFERENCES [Production].[UnitMeasure] ([UnitMeasureCode]) + ALTER TABLE [Purchasing].[ProductVendor] CHECK CONSTRAINT [FK_ProductVendor_UnitMeasure_UnitMeasureCode] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Purchasing].[FK_ProductVendor_Vendor_BusinessEntityID]') AND parent_object_id = OBJECT_ID('[Purchasing].[ProductVendor]')) +BEGIN + ALTER TABLE [Purchasing].[ProductVendor] WITH CHECK ADD CONSTRAINT [FK_ProductVendor_Vendor_BusinessEntityID] FOREIGN KEY ([BusinessEntityID]) REFERENCES [Purchasing].[Vendor] ([BusinessEntityID]) + ALTER TABLE [Purchasing].[ProductVendor] CHECK CONSTRAINT [FK_ProductVendor_Vendor_BusinessEntityID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Purchasing].[ProductVendor]') AND name = 'IX_ProductVendor_BusinessEntityID') +CREATE NONCLUSTERED INDEX [IX_ProductVendor_BusinessEntityID] ON [Purchasing].[ProductVendor]([BusinessEntityID] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Purchasing].[ProductVendor]') AND name = 'IX_ProductVendor_UnitMeasureCode') +CREATE NONCLUSTERED INDEX [IX_ProductVendor_UnitMeasureCode] ON [Purchasing].[ProductVendor]([UnitMeasureCode] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Purchasing.PurchaseOrderDetail.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Purchasing.PurchaseOrderDetail.sql new file mode 100644 index 0000000..d76f756 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Purchasing.PurchaseOrderDetail.sql @@ -0,0 +1,35 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Purchasing].[PurchaseOrderDetail]') AND type = 'U') +CREATE TABLE [Purchasing].[PurchaseOrderDetail] +( + [PurchaseOrderID] int NOT NULL, + [PurchaseOrderDetailID] int NOT NULL IDENTITY(1, 1), + [DueDate] datetime NOT NULL, + [OrderQty] smallint NOT NULL, + [ProductID] int NOT NULL, + [UnitPrice] money NOT NULL, + [LineTotal] AS (isnull([OrderQty]*[UnitPrice],(0.00))), + [ReceivedQty] decimal(8, 2) NOT NULL, + [RejectedQty] decimal(8, 2) NOT NULL, + [StockedQty] AS (isnull([ReceivedQty]-[RejectedQty],(0.00))), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_PurchaseOrderDetail_PurchaseOrderID_PurchaseOrderDetailID] PRIMARY KEY CLUSTERED + ( + [PurchaseOrderID] ASC, + [PurchaseOrderDetailID] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Purchasing].[FK_PurchaseOrderDetail_Product_ProductID]') AND parent_object_id = OBJECT_ID('[Purchasing].[PurchaseOrderDetail]')) +BEGIN + ALTER TABLE [Purchasing].[PurchaseOrderDetail] WITH CHECK ADD CONSTRAINT [FK_PurchaseOrderDetail_Product_ProductID] FOREIGN KEY ([ProductID]) REFERENCES [Production].[Product] ([ProductID]) + ALTER TABLE [Purchasing].[PurchaseOrderDetail] CHECK CONSTRAINT [FK_PurchaseOrderDetail_Product_ProductID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Purchasing].[FK_PurchaseOrderDetail_PurchaseOrderHeader_PurchaseOrderID]') AND parent_object_id = OBJECT_ID('[Purchasing].[PurchaseOrderDetail]')) +BEGIN + ALTER TABLE [Purchasing].[PurchaseOrderDetail] WITH CHECK ADD CONSTRAINT [FK_PurchaseOrderDetail_PurchaseOrderHeader_PurchaseOrderID] FOREIGN KEY ([PurchaseOrderID]) REFERENCES [Purchasing].[PurchaseOrderHeader] ([PurchaseOrderID]) + ALTER TABLE [Purchasing].[PurchaseOrderDetail] CHECK CONSTRAINT [FK_PurchaseOrderDetail_PurchaseOrderHeader_PurchaseOrderID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Purchasing].[PurchaseOrderDetail]') AND name = 'IX_PurchaseOrderDetail_ProductID') +CREATE NONCLUSTERED INDEX [IX_PurchaseOrderDetail_ProductID] ON [Purchasing].[PurchaseOrderDetail]([ProductID] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Purchasing.PurchaseOrderHeader.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Purchasing.PurchaseOrderHeader.sql new file mode 100644 index 0000000..cb24ed0 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Purchasing.PurchaseOrderHeader.sql @@ -0,0 +1,42 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Purchasing].[PurchaseOrderHeader]') AND type = 'U') +CREATE TABLE [Purchasing].[PurchaseOrderHeader] +( + [PurchaseOrderID] int NOT NULL IDENTITY(1, 1), + [RevisionNumber] tinyint NOT NULL DEFAULT((0)), + [Status] tinyint NOT NULL DEFAULT((1)), + [EmployeeID] int NOT NULL, + [VendorID] int NOT NULL, + [ShipMethodID] int NOT NULL, + [OrderDate] datetime NOT NULL DEFAULT(getdate()), + [ShipDate] datetime NULL, + [SubTotal] money NOT NULL DEFAULT((0.00)), + [TaxAmt] money NOT NULL DEFAULT((0.00)), + [Freight] money NOT NULL DEFAULT((0.00)), + [TotalDue] AS (isnull(([SubTotal]+[TaxAmt])+[Freight],(0))) PERSISTED NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_PurchaseOrderHeader_PurchaseOrderID] PRIMARY KEY CLUSTERED ([PurchaseOrderID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Purchasing].[FK_PurchaseOrderHeader_Employee_EmployeeID]') AND parent_object_id = OBJECT_ID('[Purchasing].[PurchaseOrderHeader]')) +BEGIN + ALTER TABLE [Purchasing].[PurchaseOrderHeader] WITH CHECK ADD CONSTRAINT [FK_PurchaseOrderHeader_Employee_EmployeeID] FOREIGN KEY ([EmployeeID]) REFERENCES [HumanResources].[Employee] ([BusinessEntityID]) + ALTER TABLE [Purchasing].[PurchaseOrderHeader] CHECK CONSTRAINT [FK_PurchaseOrderHeader_Employee_EmployeeID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Purchasing].[FK_PurchaseOrderHeader_Vendor_VendorID]') AND parent_object_id = OBJECT_ID('[Purchasing].[PurchaseOrderHeader]')) +BEGIN + ALTER TABLE [Purchasing].[PurchaseOrderHeader] WITH CHECK ADD CONSTRAINT [FK_PurchaseOrderHeader_Vendor_VendorID] FOREIGN KEY ([VendorID]) REFERENCES [Purchasing].[Vendor] ([BusinessEntityID]) + ALTER TABLE [Purchasing].[PurchaseOrderHeader] CHECK CONSTRAINT [FK_PurchaseOrderHeader_Vendor_VendorID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Purchasing].[FK_PurchaseOrderHeader_ShipMethod_ShipMethodID]') AND parent_object_id = OBJECT_ID('[Purchasing].[PurchaseOrderHeader]')) +BEGIN + ALTER TABLE [Purchasing].[PurchaseOrderHeader] WITH CHECK ADD CONSTRAINT [FK_PurchaseOrderHeader_ShipMethod_ShipMethodID] FOREIGN KEY ([ShipMethodID]) REFERENCES [Purchasing].[ShipMethod] ([ShipMethodID]) + ALTER TABLE [Purchasing].[PurchaseOrderHeader] CHECK CONSTRAINT [FK_PurchaseOrderHeader_ShipMethod_ShipMethodID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Purchasing].[PurchaseOrderHeader]') AND name = 'IX_PurchaseOrderHeader_EmployeeID') +CREATE NONCLUSTERED INDEX [IX_PurchaseOrderHeader_EmployeeID] ON [Purchasing].[PurchaseOrderHeader]([EmployeeID] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Purchasing].[PurchaseOrderHeader]') AND name = 'IX_PurchaseOrderHeader_VendorID') +CREATE NONCLUSTERED INDEX [IX_PurchaseOrderHeader_VendorID] ON [Purchasing].[PurchaseOrderHeader]([VendorID] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Purchasing.ShipMethod.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Purchasing.ShipMethod.sql new file mode 100644 index 0000000..2e0502f --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Purchasing.ShipMethod.sql @@ -0,0 +1,17 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Purchasing].[ShipMethod]') AND type = 'U') +CREATE TABLE [Purchasing].[ShipMethod] +( + [ShipMethodID] int NOT NULL IDENTITY(1, 1), + [Name] Name NOT NULL, + [ShipBase] money NOT NULL DEFAULT((0.00)), + [ShipRate] money NOT NULL DEFAULT((0.00)), + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_ShipMethod_ShipMethodID] PRIMARY KEY CLUSTERED ([ShipMethodID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Purchasing].[ShipMethod]') AND name = 'AK_ShipMethod_Name') +CREATE UNIQUE NONCLUSTERED INDEX [AK_ShipMethod_Name] ON [Purchasing].[ShipMethod]([Name] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Purchasing].[ShipMethod]') AND name = 'AK_ShipMethod_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_ShipMethod_rowguid] ON [Purchasing].[ShipMethod]([rowguid] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Purchasing.Vendor.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Purchasing.Vendor.sql new file mode 100644 index 0000000..38c6570 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Purchasing.Vendor.sql @@ -0,0 +1,22 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Purchasing].[Vendor]') AND type = 'U') +CREATE TABLE [Purchasing].[Vendor] +( + [BusinessEntityID] int NOT NULL, + [AccountNumber] AccountNumber NOT NULL, + [Name] Name NOT NULL, + [CreditRating] tinyint NOT NULL, + [PreferredVendorStatus] Flag NOT NULL DEFAULT((1)), + [ActiveFlag] Flag NOT NULL DEFAULT((1)), + [PurchasingWebServiceURL] nvarchar(1024) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_Vendor_BusinessEntityID] PRIMARY KEY CLUSTERED ([BusinessEntityID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Purchasing].[FK_Vendor_BusinessEntity_BusinessEntityID]') AND parent_object_id = OBJECT_ID('[Purchasing].[Vendor]')) +BEGIN + ALTER TABLE [Purchasing].[Vendor] WITH CHECK ADD CONSTRAINT [FK_Vendor_BusinessEntity_BusinessEntityID] FOREIGN KEY ([BusinessEntityID]) REFERENCES [Person].[BusinessEntity] ([BusinessEntityID]) + ALTER TABLE [Purchasing].[Vendor] CHECK CONSTRAINT [FK_Vendor_BusinessEntity_BusinessEntityID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Purchasing].[Vendor]') AND name = 'AK_Vendor_AccountNumber') +CREATE UNIQUE NONCLUSTERED INDEX [AK_Vendor_AccountNumber] ON [Purchasing].[Vendor]([AccountNumber] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Sales.CountryRegionCurrency.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.CountryRegionCurrency.sql new file mode 100644 index 0000000..ac56c9f --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.CountryRegionCurrency.sql @@ -0,0 +1,27 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[CountryRegionCurrency]') AND type = 'U') +CREATE TABLE [Sales].[CountryRegionCurrency] +( + [CountryRegionCode] nvarchar(3) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [CurrencyCode] nchar(3) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_CountryRegionCurrency_CountryRegionCode_CurrencyCode] PRIMARY KEY CLUSTERED + ( + [CountryRegionCode] ASC, + [CurrencyCode] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_CountryRegionCurrency_CountryRegion_CountryRegionCode]') AND parent_object_id = OBJECT_ID('[Sales].[CountryRegionCurrency]')) +BEGIN + ALTER TABLE [Sales].[CountryRegionCurrency] WITH CHECK ADD CONSTRAINT [FK_CountryRegionCurrency_CountryRegion_CountryRegionCode] FOREIGN KEY ([CountryRegionCode]) REFERENCES [Person].[CountryRegion] ([CountryRegionCode]) + ALTER TABLE [Sales].[CountryRegionCurrency] CHECK CONSTRAINT [FK_CountryRegionCurrency_CountryRegion_CountryRegionCode] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_CountryRegionCurrency_Currency_CurrencyCode]') AND parent_object_id = OBJECT_ID('[Sales].[CountryRegionCurrency]')) +BEGIN + ALTER TABLE [Sales].[CountryRegionCurrency] WITH CHECK ADD CONSTRAINT [FK_CountryRegionCurrency_Currency_CurrencyCode] FOREIGN KEY ([CurrencyCode]) REFERENCES [Sales].[Currency] ([CurrencyCode]) + ALTER TABLE [Sales].[CountryRegionCurrency] CHECK CONSTRAINT [FK_CountryRegionCurrency_Currency_CurrencyCode] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[CountryRegionCurrency]') AND name = 'IX_CountryRegionCurrency_CurrencyCode') +CREATE NONCLUSTERED INDEX [IX_CountryRegionCurrency_CurrencyCode] ON [Sales].[CountryRegionCurrency]([CurrencyCode] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Sales.CreditCard.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.CreditCard.sql new file mode 100644 index 0000000..9292a53 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.CreditCard.sql @@ -0,0 +1,14 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[CreditCard]') AND type = 'U') +CREATE TABLE [Sales].[CreditCard] +( + [CreditCardID] int NOT NULL IDENTITY(1, 1), + [CardType] nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [CardNumber] nvarchar(25) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [ExpMonth] tinyint NOT NULL, + [ExpYear] smallint NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_CreditCard_CreditCardID] PRIMARY KEY CLUSTERED ([CreditCardID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[CreditCard]') AND name = 'AK_CreditCard_CardNumber') +CREATE UNIQUE NONCLUSTERED INDEX [AK_CreditCard_CardNumber] ON [Sales].[CreditCard]([CardNumber] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Sales.Currency.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.Currency.sql new file mode 100644 index 0000000..1c873e7 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.Currency.sql @@ -0,0 +1,11 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[Currency]') AND type = 'U') +CREATE TABLE [Sales].[Currency] +( + [CurrencyCode] nchar(3) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [Name] Name NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_Currency_CurrencyCode] PRIMARY KEY CLUSTERED ([CurrencyCode] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[Currency]') AND name = 'AK_Currency_Name') +CREATE UNIQUE NONCLUSTERED INDEX [AK_Currency_Name] ON [Sales].[Currency]([Name] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Sales.CurrencyRate.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.CurrencyRate.sql new file mode 100644 index 0000000..fdbebfd --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.CurrencyRate.sql @@ -0,0 +1,31 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[CurrencyRate]') AND type = 'U') +CREATE TABLE [Sales].[CurrencyRate] +( + [CurrencyRateID] int NOT NULL IDENTITY(1, 1), + [CurrencyRateDate] datetime NOT NULL, + [FromCurrencyCode] nchar(3) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [ToCurrencyCode] nchar(3) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [AverageRate] money NOT NULL, + [EndOfDayRate] money NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_CurrencyRate_CurrencyRateID] PRIMARY KEY CLUSTERED ([CurrencyRateID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_CurrencyRate_Currency_FromCurrencyCode]') AND parent_object_id = OBJECT_ID('[Sales].[CurrencyRate]')) +BEGIN + ALTER TABLE [Sales].[CurrencyRate] WITH CHECK ADD CONSTRAINT [FK_CurrencyRate_Currency_FromCurrencyCode] FOREIGN KEY ([FromCurrencyCode]) REFERENCES [Sales].[Currency] ([CurrencyCode]) + ALTER TABLE [Sales].[CurrencyRate] CHECK CONSTRAINT [FK_CurrencyRate_Currency_FromCurrencyCode] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_CurrencyRate_Currency_ToCurrencyCode]') AND parent_object_id = OBJECT_ID('[Sales].[CurrencyRate]')) +BEGIN + ALTER TABLE [Sales].[CurrencyRate] WITH CHECK ADD CONSTRAINT [FK_CurrencyRate_Currency_ToCurrencyCode] FOREIGN KEY ([ToCurrencyCode]) REFERENCES [Sales].[Currency] ([CurrencyCode]) + ALTER TABLE [Sales].[CurrencyRate] CHECK CONSTRAINT [FK_CurrencyRate_Currency_ToCurrencyCode] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[CurrencyRate]') AND name = 'AK_CurrencyRate_CurrencyRateDate_FromCurrencyCode_ToCurrencyCode') +CREATE UNIQUE NONCLUSTERED INDEX [AK_CurrencyRate_CurrencyRateDate_FromCurrencyCode_ToCurrencyCode] ON [Sales].[CurrencyRate]( + [CurrencyRateDate] ASC, + [FromCurrencyCode] ASC, + [ToCurrencyCode] ASC +) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Sales.Customer.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.Customer.sql new file mode 100644 index 0000000..01b2fef --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.Customer.sql @@ -0,0 +1,39 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[Customer]') AND type = 'U') +CREATE TABLE [Sales].[Customer] +( + [CustomerID] int NOT NULL IDENTITY(1, 1), + [PersonID] int NULL, + [StoreID] int NULL, + [TerritoryID] int NULL, + [AccountNumber] AS (isnull('AW'+[dbo].[ufnLeadingZeros]([CustomerID]),'')), + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_Customer_CustomerID] PRIMARY KEY CLUSTERED ([CustomerID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_Customer_Person_PersonID]') AND parent_object_id = OBJECT_ID('[Sales].[Customer]')) +BEGIN + ALTER TABLE [Sales].[Customer] WITH CHECK ADD CONSTRAINT [FK_Customer_Person_PersonID] FOREIGN KEY ([PersonID]) REFERENCES [Person].[Person] ([BusinessEntityID]) + ALTER TABLE [Sales].[Customer] CHECK CONSTRAINT [FK_Customer_Person_PersonID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_Customer_Store_StoreID]') AND parent_object_id = OBJECT_ID('[Sales].[Customer]')) +BEGIN + ALTER TABLE [Sales].[Customer] WITH CHECK ADD CONSTRAINT [FK_Customer_Store_StoreID] FOREIGN KEY ([StoreID]) REFERENCES [Sales].[Store] ([BusinessEntityID]) + ALTER TABLE [Sales].[Customer] CHECK CONSTRAINT [FK_Customer_Store_StoreID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_Customer_SalesTerritory_TerritoryID]') AND parent_object_id = OBJECT_ID('[Sales].[Customer]')) +BEGIN + ALTER TABLE [Sales].[Customer] WITH CHECK ADD CONSTRAINT [FK_Customer_SalesTerritory_TerritoryID] FOREIGN KEY ([TerritoryID]) REFERENCES [Sales].[SalesTerritory] ([TerritoryID]) + ALTER TABLE [Sales].[Customer] CHECK CONSTRAINT [FK_Customer_SalesTerritory_TerritoryID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[Customer]') AND name = 'AK_Customer_AccountNumber') +CREATE UNIQUE NONCLUSTERED INDEX [AK_Customer_AccountNumber] ON [Sales].[Customer]([AccountNumber] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[Customer]') AND name = 'AK_Customer_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_Customer_rowguid] ON [Sales].[Customer]([rowguid] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[Customer]') AND name = 'IX_Customer_TerritoryID') +CREATE NONCLUSTERED INDEX [IX_Customer_TerritoryID] ON [Sales].[Customer]([TerritoryID] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Sales.PersonCreditCard.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.PersonCreditCard.sql new file mode 100644 index 0000000..b248120 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.PersonCreditCard.sql @@ -0,0 +1,24 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[PersonCreditCard]') AND type = 'U') +CREATE TABLE [Sales].[PersonCreditCard] +( + [BusinessEntityID] int NOT NULL, + [CreditCardID] int NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_PersonCreditCard_BusinessEntityID_CreditCardID] PRIMARY KEY CLUSTERED + ( + [BusinessEntityID] ASC, + [CreditCardID] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_PersonCreditCard_Person_BusinessEntityID]') AND parent_object_id = OBJECT_ID('[Sales].[PersonCreditCard]')) +BEGIN + ALTER TABLE [Sales].[PersonCreditCard] WITH CHECK ADD CONSTRAINT [FK_PersonCreditCard_Person_BusinessEntityID] FOREIGN KEY ([BusinessEntityID]) REFERENCES [Person].[Person] ([BusinessEntityID]) + ALTER TABLE [Sales].[PersonCreditCard] CHECK CONSTRAINT [FK_PersonCreditCard_Person_BusinessEntityID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_PersonCreditCard_CreditCard_CreditCardID]') AND parent_object_id = OBJECT_ID('[Sales].[PersonCreditCard]')) +BEGIN + ALTER TABLE [Sales].[PersonCreditCard] WITH CHECK ADD CONSTRAINT [FK_PersonCreditCard_CreditCard_CreditCardID] FOREIGN KEY ([CreditCardID]) REFERENCES [Sales].[CreditCard] ([CreditCardID]) + ALTER TABLE [Sales].[PersonCreditCard] CHECK CONSTRAINT [FK_PersonCreditCard_CreditCard_CreditCardID] +END \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesOrderDetail.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesOrderDetail.sql new file mode 100644 index 0000000..ce1ddeb --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesOrderDetail.sql @@ -0,0 +1,44 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[SalesOrderDetail]') AND type = 'U') +CREATE TABLE [Sales].[SalesOrderDetail] +( + [SalesOrderID] int NOT NULL, + [SalesOrderDetailID] int NOT NULL IDENTITY(1, 1), + [CarrierTrackingNumber] nvarchar(25) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [OrderQty] smallint NOT NULL, + [ProductID] int NOT NULL, + [SpecialOfferID] int NOT NULL, + [UnitPrice] money NOT NULL, + [UnitPriceDiscount] money NOT NULL DEFAULT((0.0)), + [LineTotal] AS (isnull(([UnitPrice]*((1.0)-[UnitPriceDiscount]))*[OrderQty],(0.0))), + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_SalesOrderDetail_SalesOrderID_SalesOrderDetailID] PRIMARY KEY CLUSTERED + ( + [SalesOrderID] ASC, + [SalesOrderDetailID] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID]') AND parent_object_id = OBJECT_ID('[Sales].[SalesOrderDetail]')) +BEGIN + ALTER TABLE [Sales].[SalesOrderDetail] WITH CHECK ADD CONSTRAINT [FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID] FOREIGN KEY ([SalesOrderID]) REFERENCES [Sales].[SalesOrderHeader] ([SalesOrderID]) ON DELETE CASCADE + ALTER TABLE [Sales].[SalesOrderDetail] CHECK CONSTRAINT [FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_SalesOrderDetail_SpecialOfferProduct_SpecialOfferIDProductID]') AND parent_object_id = OBJECT_ID('[Sales].[SalesOrderDetail]')) +BEGIN + ALTER TABLE [Sales].[SalesOrderDetail] WITH CHECK ADD CONSTRAINT [FK_SalesOrderDetail_SpecialOfferProduct_SpecialOfferIDProductID] FOREIGN KEY ([SpecialOfferID]) REFERENCES [Sales].[SpecialOfferProduct] ([SpecialOfferID]) + ALTER TABLE [Sales].[SalesOrderDetail] CHECK CONSTRAINT [FK_SalesOrderDetail_SpecialOfferProduct_SpecialOfferIDProductID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_SalesOrderDetail_SpecialOfferProduct_SpecialOfferIDProductID]') AND parent_object_id = OBJECT_ID('[Sales].[SalesOrderDetail]')) +BEGIN + ALTER TABLE [Sales].[SalesOrderDetail] WITH CHECK ADD CONSTRAINT [FK_SalesOrderDetail_SpecialOfferProduct_SpecialOfferIDProductID] FOREIGN KEY ([ProductID]) REFERENCES [Sales].[SpecialOfferProduct] ([ProductID]) + ALTER TABLE [Sales].[SalesOrderDetail] CHECK CONSTRAINT [FK_SalesOrderDetail_SpecialOfferProduct_SpecialOfferIDProductID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[SalesOrderDetail]') AND name = 'AK_SalesOrderDetail_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_SalesOrderDetail_rowguid] ON [Sales].[SalesOrderDetail]([rowguid] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[SalesOrderDetail]') AND name = 'IX_SalesOrderDetail_ProductID') +CREATE NONCLUSTERED INDEX [IX_SalesOrderDetail_ProductID] ON [Sales].[SalesOrderDetail]([ProductID] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesOrderHeader.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesOrderHeader.sql new file mode 100644 index 0000000..b9de970 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesOrderHeader.sql @@ -0,0 +1,91 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[SalesOrderHeader]') AND type = 'U') +CREATE TABLE [Sales].[SalesOrderHeader] +( + [SalesOrderID] int NOT NULL IDENTITY(1, 1), + [RevisionNumber] tinyint NOT NULL DEFAULT((0)), + [OrderDate] datetime NOT NULL DEFAULT(getdate()), + [DueDate] datetime NOT NULL, + [ShipDate] datetime NULL, + [Status] tinyint NOT NULL DEFAULT((1)), + [OnlineOrderFlag] Flag NOT NULL DEFAULT((1)), + [SalesOrderNumber] AS (isnull(N'SO'+CONVERT([nvarchar](23),[SalesOrderID]),N'*** ERROR ***')), + [PurchaseOrderNumber] OrderNumber NULL, + [AccountNumber] AccountNumber NULL, + [CustomerID] int NOT NULL, + [SalesPersonID] int NULL, + [TerritoryID] int NULL, + [BillToAddressID] int NOT NULL, + [ShipToAddressID] int NOT NULL, + [ShipMethodID] int NOT NULL, + [CreditCardID] int NULL, + [CreditCardApprovalCode] varchar(15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CurrencyRateID] int NULL, + [SubTotal] money NOT NULL DEFAULT((0.00)), + [TaxAmt] money NOT NULL DEFAULT((0.00)), + [Freight] money NOT NULL DEFAULT((0.00)), + [TotalDue] AS (isnull(([SubTotal]+[TaxAmt])+[Freight],(0))), + [Comment] nvarchar(128) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_SalesOrderHeader_SalesOrderID] PRIMARY KEY CLUSTERED ([SalesOrderID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_SalesOrderHeader_Address_BillToAddressID]') AND parent_object_id = OBJECT_ID('[Sales].[SalesOrderHeader]')) +BEGIN + ALTER TABLE [Sales].[SalesOrderHeader] WITH CHECK ADD CONSTRAINT [FK_SalesOrderHeader_Address_BillToAddressID] FOREIGN KEY ([BillToAddressID]) REFERENCES [Person].[Address] ([AddressID]) + ALTER TABLE [Sales].[SalesOrderHeader] CHECK CONSTRAINT [FK_SalesOrderHeader_Address_BillToAddressID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_SalesOrderHeader_Address_ShipToAddressID]') AND parent_object_id = OBJECT_ID('[Sales].[SalesOrderHeader]')) +BEGIN + ALTER TABLE [Sales].[SalesOrderHeader] WITH CHECK ADD CONSTRAINT [FK_SalesOrderHeader_Address_ShipToAddressID] FOREIGN KEY ([ShipToAddressID]) REFERENCES [Person].[Address] ([AddressID]) + ALTER TABLE [Sales].[SalesOrderHeader] CHECK CONSTRAINT [FK_SalesOrderHeader_Address_ShipToAddressID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_SalesOrderHeader_CreditCard_CreditCardID]') AND parent_object_id = OBJECT_ID('[Sales].[SalesOrderHeader]')) +BEGIN + ALTER TABLE [Sales].[SalesOrderHeader] WITH CHECK ADD CONSTRAINT [FK_SalesOrderHeader_CreditCard_CreditCardID] FOREIGN KEY ([CreditCardID]) REFERENCES [Sales].[CreditCard] ([CreditCardID]) + ALTER TABLE [Sales].[SalesOrderHeader] CHECK CONSTRAINT [FK_SalesOrderHeader_CreditCard_CreditCardID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_SalesOrderHeader_CurrencyRate_CurrencyRateID]') AND parent_object_id = OBJECT_ID('[Sales].[SalesOrderHeader]')) +BEGIN + ALTER TABLE [Sales].[SalesOrderHeader] WITH CHECK ADD CONSTRAINT [FK_SalesOrderHeader_CurrencyRate_CurrencyRateID] FOREIGN KEY ([CurrencyRateID]) REFERENCES [Sales].[CurrencyRate] ([CurrencyRateID]) + ALTER TABLE [Sales].[SalesOrderHeader] CHECK CONSTRAINT [FK_SalesOrderHeader_CurrencyRate_CurrencyRateID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_SalesOrderHeader_Customer_CustomerID]') AND parent_object_id = OBJECT_ID('[Sales].[SalesOrderHeader]')) +BEGIN + ALTER TABLE [Sales].[SalesOrderHeader] WITH CHECK ADD CONSTRAINT [FK_SalesOrderHeader_Customer_CustomerID] FOREIGN KEY ([CustomerID]) REFERENCES [Sales].[Customer] ([CustomerID]) + ALTER TABLE [Sales].[SalesOrderHeader] CHECK CONSTRAINT [FK_SalesOrderHeader_Customer_CustomerID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_SalesOrderHeader_SalesPerson_SalesPersonID]') AND parent_object_id = OBJECT_ID('[Sales].[SalesOrderHeader]')) +BEGIN + ALTER TABLE [Sales].[SalesOrderHeader] WITH CHECK ADD CONSTRAINT [FK_SalesOrderHeader_SalesPerson_SalesPersonID] FOREIGN KEY ([SalesPersonID]) REFERENCES [Sales].[SalesPerson] ([BusinessEntityID]) + ALTER TABLE [Sales].[SalesOrderHeader] CHECK CONSTRAINT [FK_SalesOrderHeader_SalesPerson_SalesPersonID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_SalesOrderHeader_ShipMethod_ShipMethodID]') AND parent_object_id = OBJECT_ID('[Sales].[SalesOrderHeader]')) +BEGIN + ALTER TABLE [Sales].[SalesOrderHeader] WITH CHECK ADD CONSTRAINT [FK_SalesOrderHeader_ShipMethod_ShipMethodID] FOREIGN KEY ([ShipMethodID]) REFERENCES [Purchasing].[ShipMethod] ([ShipMethodID]) + ALTER TABLE [Sales].[SalesOrderHeader] CHECK CONSTRAINT [FK_SalesOrderHeader_ShipMethod_ShipMethodID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_SalesOrderHeader_SalesTerritory_TerritoryID]') AND parent_object_id = OBJECT_ID('[Sales].[SalesOrderHeader]')) +BEGIN + ALTER TABLE [Sales].[SalesOrderHeader] WITH CHECK ADD CONSTRAINT [FK_SalesOrderHeader_SalesTerritory_TerritoryID] FOREIGN KEY ([TerritoryID]) REFERENCES [Sales].[SalesTerritory] ([TerritoryID]) + ALTER TABLE [Sales].[SalesOrderHeader] CHECK CONSTRAINT [FK_SalesOrderHeader_SalesTerritory_TerritoryID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[SalesOrderHeader]') AND name = 'AK_SalesOrderHeader_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_SalesOrderHeader_rowguid] ON [Sales].[SalesOrderHeader]([rowguid] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[SalesOrderHeader]') AND name = 'AK_SalesOrderHeader_SalesOrderNumber') +CREATE UNIQUE NONCLUSTERED INDEX [AK_SalesOrderHeader_SalesOrderNumber] ON [Sales].[SalesOrderHeader]([SalesOrderNumber] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[SalesOrderHeader]') AND name = 'IX_SalesOrderHeader_CustomerID') +CREATE NONCLUSTERED INDEX [IX_SalesOrderHeader_CustomerID] ON [Sales].[SalesOrderHeader]([CustomerID] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[SalesOrderHeader]') AND name = 'IX_SalesOrderHeader_SalesPersonID') +CREATE NONCLUSTERED INDEX [IX_SalesOrderHeader_SalesPersonID] ON [Sales].[SalesOrderHeader]([SalesPersonID] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesOrderHeaderSalesReason.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesOrderHeaderSalesReason.sql new file mode 100644 index 0000000..c9a1b64 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesOrderHeaderSalesReason.sql @@ -0,0 +1,24 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[SalesOrderHeaderSalesReason]') AND type = 'U') +CREATE TABLE [Sales].[SalesOrderHeaderSalesReason] +( + [SalesOrderID] int NOT NULL, + [SalesReasonID] int NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_SalesOrderHeaderSalesReason_SalesOrderID_SalesReasonID] PRIMARY KEY CLUSTERED + ( + [SalesOrderID] ASC, + [SalesReasonID] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_SalesOrderHeaderSalesReason_SalesReason_SalesReasonID]') AND parent_object_id = OBJECT_ID('[Sales].[SalesOrderHeaderSalesReason]')) +BEGIN + ALTER TABLE [Sales].[SalesOrderHeaderSalesReason] WITH CHECK ADD CONSTRAINT [FK_SalesOrderHeaderSalesReason_SalesReason_SalesReasonID] FOREIGN KEY ([SalesReasonID]) REFERENCES [Sales].[SalesReason] ([SalesReasonID]) + ALTER TABLE [Sales].[SalesOrderHeaderSalesReason] CHECK CONSTRAINT [FK_SalesOrderHeaderSalesReason_SalesReason_SalesReasonID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_SalesOrderHeaderSalesReason_SalesOrderHeader_SalesOrderID]') AND parent_object_id = OBJECT_ID('[Sales].[SalesOrderHeaderSalesReason]')) +BEGIN + ALTER TABLE [Sales].[SalesOrderHeaderSalesReason] WITH CHECK ADD CONSTRAINT [FK_SalesOrderHeaderSalesReason_SalesOrderHeader_SalesOrderID] FOREIGN KEY ([SalesOrderID]) REFERENCES [Sales].[SalesOrderHeader] ([SalesOrderID]) ON DELETE CASCADE + ALTER TABLE [Sales].[SalesOrderHeaderSalesReason] CHECK CONSTRAINT [FK_SalesOrderHeaderSalesReason_SalesOrderHeader_SalesOrderID] +END \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesPerson.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesPerson.sql new file mode 100644 index 0000000..a59a458 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesPerson.sql @@ -0,0 +1,29 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[SalesPerson]') AND type = 'U') +CREATE TABLE [Sales].[SalesPerson] +( + [BusinessEntityID] int NOT NULL, + [TerritoryID] int NULL, + [SalesQuota] money NULL, + [Bonus] money NOT NULL DEFAULT((0.00)), + [CommissionPct] smallmoney NOT NULL DEFAULT((0.00)), + [SalesYTD] money NOT NULL DEFAULT((0.00)), + [SalesLastYear] money NOT NULL DEFAULT((0.00)), + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_SalesPerson_BusinessEntityID] PRIMARY KEY CLUSTERED ([BusinessEntityID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_SalesPerson_Employee_BusinessEntityID]') AND parent_object_id = OBJECT_ID('[Sales].[SalesPerson]')) +BEGIN + ALTER TABLE [Sales].[SalesPerson] WITH CHECK ADD CONSTRAINT [FK_SalesPerson_Employee_BusinessEntityID] FOREIGN KEY ([BusinessEntityID]) REFERENCES [HumanResources].[Employee] ([BusinessEntityID]) + ALTER TABLE [Sales].[SalesPerson] CHECK CONSTRAINT [FK_SalesPerson_Employee_BusinessEntityID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_SalesPerson_SalesTerritory_TerritoryID]') AND parent_object_id = OBJECT_ID('[Sales].[SalesPerson]')) +BEGIN + ALTER TABLE [Sales].[SalesPerson] WITH CHECK ADD CONSTRAINT [FK_SalesPerson_SalesTerritory_TerritoryID] FOREIGN KEY ([TerritoryID]) REFERENCES [Sales].[SalesTerritory] ([TerritoryID]) + ALTER TABLE [Sales].[SalesPerson] CHECK CONSTRAINT [FK_SalesPerson_SalesTerritory_TerritoryID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[SalesPerson]') AND name = 'AK_SalesPerson_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_SalesPerson_rowguid] ON [Sales].[SalesPerson]([rowguid] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesPersonQuotaHistory.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesPersonQuotaHistory.sql new file mode 100644 index 0000000..f53acf8 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesPersonQuotaHistory.sql @@ -0,0 +1,23 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[SalesPersonQuotaHistory]') AND type = 'U') +CREATE TABLE [Sales].[SalesPersonQuotaHistory] +( + [BusinessEntityID] int NOT NULL, + [QuotaDate] datetime NOT NULL, + [SalesQuota] money NOT NULL, + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_SalesPersonQuotaHistory_BusinessEntityID_QuotaDate] PRIMARY KEY CLUSTERED + ( + [BusinessEntityID] ASC, + [QuotaDate] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_SalesPersonQuotaHistory_SalesPerson_BusinessEntityID]') AND parent_object_id = OBJECT_ID('[Sales].[SalesPersonQuotaHistory]')) +BEGIN + ALTER TABLE [Sales].[SalesPersonQuotaHistory] WITH CHECK ADD CONSTRAINT [FK_SalesPersonQuotaHistory_SalesPerson_BusinessEntityID] FOREIGN KEY ([BusinessEntityID]) REFERENCES [Sales].[SalesPerson] ([BusinessEntityID]) + ALTER TABLE [Sales].[SalesPersonQuotaHistory] CHECK CONSTRAINT [FK_SalesPersonQuotaHistory_SalesPerson_BusinessEntityID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[SalesPersonQuotaHistory]') AND name = 'AK_SalesPersonQuotaHistory_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_SalesPersonQuotaHistory_rowguid] ON [Sales].[SalesPersonQuotaHistory]([rowguid] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesReason.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesReason.sql new file mode 100644 index 0000000..9d87f27 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesReason.sql @@ -0,0 +1,9 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[SalesReason]') AND type = 'U') +CREATE TABLE [Sales].[SalesReason] +( + [SalesReasonID] int NOT NULL IDENTITY(1, 1), + [Name] Name NOT NULL, + [ReasonType] Name NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_SalesReason_SalesReasonID] PRIMARY KEY CLUSTERED ([SalesReasonID] ASC) +) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesTaxRate.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesTaxRate.sql new file mode 100644 index 0000000..f20d78e --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesTaxRate.sql @@ -0,0 +1,27 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[SalesTaxRate]') AND type = 'U') +CREATE TABLE [Sales].[SalesTaxRate] +( + [SalesTaxRateID] int NOT NULL IDENTITY(1, 1), + [StateProvinceID] int NOT NULL, + [TaxType] tinyint NOT NULL, + [TaxRate] smallmoney NOT NULL DEFAULT((0.00)), + [Name] Name NOT NULL, + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_SalesTaxRate_SalesTaxRateID] PRIMARY KEY CLUSTERED ([SalesTaxRateID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_SalesTaxRate_StateProvince_StateProvinceID]') AND parent_object_id = OBJECT_ID('[Sales].[SalesTaxRate]')) +BEGIN + ALTER TABLE [Sales].[SalesTaxRate] WITH CHECK ADD CONSTRAINT [FK_SalesTaxRate_StateProvince_StateProvinceID] FOREIGN KEY ([StateProvinceID]) REFERENCES [Person].[StateProvince] ([StateProvinceID]) + ALTER TABLE [Sales].[SalesTaxRate] CHECK CONSTRAINT [FK_SalesTaxRate_StateProvince_StateProvinceID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[SalesTaxRate]') AND name = 'AK_SalesTaxRate_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_SalesTaxRate_rowguid] ON [Sales].[SalesTaxRate]([rowguid] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[SalesTaxRate]') AND name = 'AK_SalesTaxRate_StateProvinceID_TaxType') +CREATE UNIQUE NONCLUSTERED INDEX [AK_SalesTaxRate_StateProvinceID_TaxType] ON [Sales].[SalesTaxRate]( + [StateProvinceID] ASC, + [TaxType] ASC +) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesTerritory.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesTerritory.sql new file mode 100644 index 0000000..27d4cfe --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesTerritory.sql @@ -0,0 +1,27 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[SalesTerritory]') AND type = 'U') +CREATE TABLE [Sales].[SalesTerritory] +( + [TerritoryID] int NOT NULL IDENTITY(1, 1), + [Name] Name NOT NULL, + [CountryRegionCode] nvarchar(3) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [Group] nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [SalesYTD] money NOT NULL DEFAULT((0.00)), + [SalesLastYear] money NOT NULL DEFAULT((0.00)), + [CostYTD] money NOT NULL DEFAULT((0.00)), + [CostLastYear] money NOT NULL DEFAULT((0.00)), + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_SalesTerritory_TerritoryID] PRIMARY KEY CLUSTERED ([TerritoryID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_SalesTerritory_CountryRegion_CountryRegionCode]') AND parent_object_id = OBJECT_ID('[Sales].[SalesTerritory]')) +BEGIN + ALTER TABLE [Sales].[SalesTerritory] WITH CHECK ADD CONSTRAINT [FK_SalesTerritory_CountryRegion_CountryRegionCode] FOREIGN KEY ([CountryRegionCode]) REFERENCES [Person].[CountryRegion] ([CountryRegionCode]) + ALTER TABLE [Sales].[SalesTerritory] CHECK CONSTRAINT [FK_SalesTerritory_CountryRegion_CountryRegionCode] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[SalesTerritory]') AND name = 'AK_SalesTerritory_Name') +CREATE UNIQUE NONCLUSTERED INDEX [AK_SalesTerritory_Name] ON [Sales].[SalesTerritory]([Name] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[SalesTerritory]') AND name = 'AK_SalesTerritory_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_SalesTerritory_rowguid] ON [Sales].[SalesTerritory]([rowguid] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesTerritoryHistory.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesTerritoryHistory.sql new file mode 100644 index 0000000..9a54d7d --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SalesTerritoryHistory.sql @@ -0,0 +1,31 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[SalesTerritoryHistory]') AND type = 'U') +CREATE TABLE [Sales].[SalesTerritoryHistory] +( + [BusinessEntityID] int NOT NULL, + [TerritoryID] int NOT NULL, + [StartDate] datetime NOT NULL, + [EndDate] datetime NULL, + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_SalesTerritoryHistory_BusinessEntityID_StartDate_TerritoryID] PRIMARY KEY CLUSTERED + ( + [BusinessEntityID] ASC, + [StartDate] ASC, + [TerritoryID] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_SalesTerritoryHistory_SalesPerson_BusinessEntityID]') AND parent_object_id = OBJECT_ID('[Sales].[SalesTerritoryHistory]')) +BEGIN + ALTER TABLE [Sales].[SalesTerritoryHistory] WITH CHECK ADD CONSTRAINT [FK_SalesTerritoryHistory_SalesPerson_BusinessEntityID] FOREIGN KEY ([BusinessEntityID]) REFERENCES [Sales].[SalesPerson] ([BusinessEntityID]) + ALTER TABLE [Sales].[SalesTerritoryHistory] CHECK CONSTRAINT [FK_SalesTerritoryHistory_SalesPerson_BusinessEntityID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_SalesTerritoryHistory_SalesTerritory_TerritoryID]') AND parent_object_id = OBJECT_ID('[Sales].[SalesTerritoryHistory]')) +BEGIN + ALTER TABLE [Sales].[SalesTerritoryHistory] WITH CHECK ADD CONSTRAINT [FK_SalesTerritoryHistory_SalesTerritory_TerritoryID] FOREIGN KEY ([TerritoryID]) REFERENCES [Sales].[SalesTerritory] ([TerritoryID]) + ALTER TABLE [Sales].[SalesTerritoryHistory] CHECK CONSTRAINT [FK_SalesTerritoryHistory_SalesTerritory_TerritoryID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[SalesTerritoryHistory]') AND name = 'AK_SalesTerritoryHistory_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_SalesTerritoryHistory_rowguid] ON [Sales].[SalesTerritoryHistory]([rowguid] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Sales.ShoppingCartItem.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.ShoppingCartItem.sql new file mode 100644 index 0000000..c2feba7 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.ShoppingCartItem.sql @@ -0,0 +1,23 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[ShoppingCartItem]') AND type = 'U') +CREATE TABLE [Sales].[ShoppingCartItem] +( + [ShoppingCartItemID] int NOT NULL IDENTITY(1, 1), + [ShoppingCartID] nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [Quantity] int NOT NULL DEFAULT((1)), + [ProductID] int NOT NULL, + [DateCreated] datetime NOT NULL DEFAULT(getdate()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_ShoppingCartItem_ShoppingCartItemID] PRIMARY KEY CLUSTERED ([ShoppingCartItemID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_ShoppingCartItem_Product_ProductID]') AND parent_object_id = OBJECT_ID('[Sales].[ShoppingCartItem]')) +BEGIN + ALTER TABLE [Sales].[ShoppingCartItem] WITH CHECK ADD CONSTRAINT [FK_ShoppingCartItem_Product_ProductID] FOREIGN KEY ([ProductID]) REFERENCES [Production].[Product] ([ProductID]) + ALTER TABLE [Sales].[ShoppingCartItem] CHECK CONSTRAINT [FK_ShoppingCartItem_Product_ProductID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[ShoppingCartItem]') AND name = 'IX_ShoppingCartItem_ShoppingCartID_ProductID') +CREATE NONCLUSTERED INDEX [IX_ShoppingCartItem_ShoppingCartID_ProductID] ON [Sales].[ShoppingCartItem]( + [ShoppingCartID] ASC, + [ProductID] ASC +) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SpecialOffer.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SpecialOffer.sql new file mode 100644 index 0000000..874b7f7 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SpecialOffer.sql @@ -0,0 +1,19 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[SpecialOffer]') AND type = 'U') +CREATE TABLE [Sales].[SpecialOffer] +( + [SpecialOfferID] int NOT NULL IDENTITY(1, 1), + [Description] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [DiscountPct] smallmoney NOT NULL DEFAULT((0.00)), + [Type] nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [Category] nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [StartDate] datetime NOT NULL, + [EndDate] datetime NOT NULL, + [MinQty] int NOT NULL DEFAULT((0)), + [MaxQty] int NULL, + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_SpecialOffer_SpecialOfferID] PRIMARY KEY CLUSTERED ([SpecialOfferID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[SpecialOffer]') AND name = 'AK_SpecialOffer_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_SpecialOffer_rowguid] ON [Sales].[SpecialOffer]([rowguid] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SpecialOfferProduct.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SpecialOfferProduct.sql new file mode 100644 index 0000000..665f67b --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.SpecialOfferProduct.sql @@ -0,0 +1,31 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[SpecialOfferProduct]') AND type = 'U') +CREATE TABLE [Sales].[SpecialOfferProduct] +( + [SpecialOfferID] int NOT NULL, + [ProductID] int NOT NULL, + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_SpecialOfferProduct_SpecialOfferID_ProductID] PRIMARY KEY CLUSTERED + ( + [SpecialOfferID] ASC, + [ProductID] ASC + ) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_SpecialOfferProduct_Product_ProductID]') AND parent_object_id = OBJECT_ID('[Sales].[SpecialOfferProduct]')) +BEGIN + ALTER TABLE [Sales].[SpecialOfferProduct] WITH CHECK ADD CONSTRAINT [FK_SpecialOfferProduct_Product_ProductID] FOREIGN KEY ([ProductID]) REFERENCES [Production].[Product] ([ProductID]) + ALTER TABLE [Sales].[SpecialOfferProduct] CHECK CONSTRAINT [FK_SpecialOfferProduct_Product_ProductID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_SpecialOfferProduct_SpecialOffer_SpecialOfferID]') AND parent_object_id = OBJECT_ID('[Sales].[SpecialOfferProduct]')) +BEGIN + ALTER TABLE [Sales].[SpecialOfferProduct] WITH CHECK ADD CONSTRAINT [FK_SpecialOfferProduct_SpecialOffer_SpecialOfferID] FOREIGN KEY ([SpecialOfferID]) REFERENCES [Sales].[SpecialOffer] ([SpecialOfferID]) + ALTER TABLE [Sales].[SpecialOfferProduct] CHECK CONSTRAINT [FK_SpecialOfferProduct_SpecialOffer_SpecialOfferID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[SpecialOfferProduct]') AND name = 'AK_SpecialOfferProduct_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_SpecialOfferProduct_rowguid] ON [Sales].[SpecialOfferProduct]([rowguid] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[SpecialOfferProduct]') AND name = 'IX_SpecialOfferProduct_ProductID') +CREATE NONCLUSTERED INDEX [IX_SpecialOfferProduct_ProductID] ON [Sales].[SpecialOfferProduct]([ProductID] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/Sales.Store.sql b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.Store.sql new file mode 100644 index 0000000..d75e0fd --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/Sales.Store.sql @@ -0,0 +1,29 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[Store]') AND type = 'U') +CREATE TABLE [Sales].[Store] +( + [BusinessEntityID] int NOT NULL, + [Name] Name NOT NULL, + [SalesPersonID] int NULL, + [Demographics] xml NULL, + [rowguid] uniqueidentifier NOT NULL DEFAULT(newid()), + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_Store_BusinessEntityID] PRIMARY KEY CLUSTERED ([BusinessEntityID] ASC) +) + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_Store_BusinessEntity_BusinessEntityID]') AND parent_object_id = OBJECT_ID('[Sales].[Store]')) +BEGIN + ALTER TABLE [Sales].[Store] WITH CHECK ADD CONSTRAINT [FK_Store_BusinessEntity_BusinessEntityID] FOREIGN KEY ([BusinessEntityID]) REFERENCES [Person].[BusinessEntity] ([BusinessEntityID]) + ALTER TABLE [Sales].[Store] CHECK CONSTRAINT [FK_Store_BusinessEntity_BusinessEntityID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE object_id = OBJECT_ID('[Sales].[FK_Store_SalesPerson_SalesPersonID]') AND parent_object_id = OBJECT_ID('[Sales].[Store]')) +BEGIN + ALTER TABLE [Sales].[Store] WITH CHECK ADD CONSTRAINT [FK_Store_SalesPerson_SalesPersonID] FOREIGN KEY ([SalesPersonID]) REFERENCES [Sales].[SalesPerson] ([BusinessEntityID]) + ALTER TABLE [Sales].[Store] CHECK CONSTRAINT [FK_Store_SalesPerson_SalesPersonID] +END + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[Store]') AND name = 'AK_Store_rowguid') +CREATE UNIQUE NONCLUSTERED INDEX [AK_Store_rowguid] ON [Sales].[Store]([rowguid] ASC) + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID('[Sales].[Store]') AND name = 'IX_Store_SalesPersonID') +CREATE NONCLUSTERED INDEX [IX_Store_SalesPersonID] ON [Sales].[Store]([SalesPersonID] ASC) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/dbo.AWBuildVersion.sql b/snapshots/AdventureWorks2017/_sql-database/tables/dbo.AWBuildVersion.sql new file mode 100644 index 0000000..8034009 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/dbo.AWBuildVersion.sql @@ -0,0 +1,9 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[AWBuildVersion]') AND type = 'U') +CREATE TABLE [dbo].[AWBuildVersion] +( + [SystemInformationID] tinyint NOT NULL IDENTITY(1, 1), + [Database Version] nvarchar(25) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [VersionDate] datetime NOT NULL, + [ModifiedDate] datetime NOT NULL DEFAULT(getdate()), + CONSTRAINT [PK_AWBuildVersion_SystemInformationID] PRIMARY KEY CLUSTERED ([SystemInformationID] ASC) +) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/dbo.DatabaseLog.sql b/snapshots/AdventureWorks2017/_sql-database/tables/dbo.DatabaseLog.sql new file mode 100644 index 0000000..3a008f1 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/dbo.DatabaseLog.sql @@ -0,0 +1,13 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[DatabaseLog]') AND type = 'U') +CREATE TABLE [dbo].[DatabaseLog] +( + [DatabaseLogID] int NOT NULL IDENTITY(1, 1), + [PostTime] datetime NOT NULL, + [DatabaseUser] sysname COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [Event] sysname COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [Schema] sysname COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [Object] sysname COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TSQL] nvarchar(max) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [XmlEvent] xml NOT NULL, + CONSTRAINT [PK_DatabaseLog_DatabaseLogID] PRIMARY KEY NONCLUSTERED ([DatabaseLogID] ASC) +) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/tables/dbo.ErrorLog.sql b/snapshots/AdventureWorks2017/_sql-database/tables/dbo.ErrorLog.sql new file mode 100644 index 0000000..0226888 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/tables/dbo.ErrorLog.sql @@ -0,0 +1,14 @@ +IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[ErrorLog]') AND type = 'U') +CREATE TABLE [dbo].[ErrorLog] +( + [ErrorLogID] int NOT NULL IDENTITY(1, 1), + [ErrorTime] datetime NOT NULL DEFAULT(getdate()), + [UserName] sysname COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [ErrorNumber] int NOT NULL, + [ErrorSeverity] int NULL, + [ErrorState] int NULL, + [ErrorProcedure] nvarchar(126) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ErrorLine] int NULL, + [ErrorMessage] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + CONSTRAINT [PK_ErrorLog_ErrorLogID] PRIMARY KEY CLUSTERED ([ErrorLogID] ASC) +) \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/triggers/HumanResources.dEmployee.sql b/snapshots/AdventureWorks2017/_sql-database/triggers/HumanResources.dEmployee.sql new file mode 100644 index 0000000..b85b40b --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/triggers/HumanResources.dEmployee.sql @@ -0,0 +1,28 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[HumanResources].[dEmployee]') AND type = 'TR') +DROP TRIGGER [HumanResources].[dEmployee] +GO + +CREATE TRIGGER [HumanResources].[dEmployee] ON [HumanResources].[Employee] +INSTEAD OF DELETE NOT FOR REPLICATION AS +BEGIN + DECLARE @Count int; + + SET @Count = @@ROWCOUNT; + IF @Count = 0 + RETURN; + + SET NOCOUNT ON; + + BEGIN + RAISERROR + (N'Employees cannot be deleted. They can only be marked as not current.', -- Message + 10, -- Severity. + 1); -- State. + + -- Rollback any active or uncommittable transactions + IF @@TRANCOUNT > 0 + BEGIN + ROLLBACK TRANSACTION; + END + END; +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/triggers/Person.iuPerson.sql b/snapshots/AdventureWorks2017/_sql-database/triggers/Person.iuPerson.sql new file mode 100644 index 0000000..a35dd80 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/triggers/Person.iuPerson.sql @@ -0,0 +1,38 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Person].[iuPerson]') AND type = 'TR') +DROP TRIGGER [Person].[iuPerson] +GO + +CREATE TRIGGER [Person].[iuPerson] ON [Person].[Person] +AFTER INSERT, UPDATE NOT FOR REPLICATION AS +BEGIN + DECLARE @Count int; + + SET @Count = @@ROWCOUNT; + IF @Count = 0 + RETURN; + + SET NOCOUNT ON; + + IF UPDATE([BusinessEntityID]) OR UPDATE([Demographics]) + BEGIN + UPDATE [Person].[Person] + SET [Person].[Person].[Demographics] = N' + 0.00 + ' + FROM inserted + WHERE [Person].[Person].[BusinessEntityID] = inserted.[BusinessEntityID] + AND inserted.[Demographics] IS NULL; + + UPDATE [Person].[Person] + SET [Demographics].modify(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; + insert 0.00 + as first + into (/IndividualSurvey)[1]') + FROM inserted + WHERE [Person].[Person].[BusinessEntityID] = inserted.[BusinessEntityID] + AND inserted.[Demographics] IS NOT NULL + AND inserted.[Demographics].exist(N'declare default element namespace + "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; + /IndividualSurvey/TotalPurchaseYTD') <> 1; + END; +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/triggers/Production.iWorkOrder.sql b/snapshots/AdventureWorks2017/_sql-database/triggers/Production.iWorkOrder.sql new file mode 100644 index 0000000..a569fb6 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/triggers/Production.iWorkOrder.sql @@ -0,0 +1,45 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[iWorkOrder]') AND type = 'TR') +DROP TRIGGER [Production].[iWorkOrder] +GO + +CREATE TRIGGER [Production].[iWorkOrder] ON [Production].[WorkOrder] +AFTER INSERT AS +BEGIN + DECLARE @Count int; + + SET @Count = @@ROWCOUNT; + IF @Count = 0 + RETURN; + + SET NOCOUNT ON; + + BEGIN TRY + INSERT INTO [Production].[TransactionHistory]( + [ProductID] + ,[ReferenceOrderID] + ,[TransactionType] + ,[TransactionDate] + ,[Quantity] + ,[ActualCost]) + SELECT + inserted.[ProductID] + ,inserted.[WorkOrderID] + ,'W' + ,GETDATE() + ,inserted.[OrderQty] + ,0 + FROM inserted; + END TRY + BEGIN CATCH + EXECUTE [dbo].[uspPrintError]; + + -- Rollback any active or uncommittable transactions before + -- inserting information in the ErrorLog + IF @@TRANCOUNT > 0 + BEGIN + ROLLBACK TRANSACTION; + END + + EXECUTE [dbo].[uspLogError]; + END CATCH; +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/triggers/Production.uWorkOrder.sql b/snapshots/AdventureWorks2017/_sql-database/triggers/Production.uWorkOrder.sql new file mode 100644 index 0000000..345b9b0 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/triggers/Production.uWorkOrder.sql @@ -0,0 +1,46 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[uWorkOrder]') AND type = 'TR') +DROP TRIGGER [Production].[uWorkOrder] +GO + +CREATE TRIGGER [Production].[uWorkOrder] ON [Production].[WorkOrder] +AFTER UPDATE AS +BEGIN + DECLARE @Count int; + + SET @Count = @@ROWCOUNT; + IF @Count = 0 + RETURN; + + SET NOCOUNT ON; + + BEGIN TRY + IF UPDATE([ProductID]) OR UPDATE([OrderQty]) + BEGIN + INSERT INTO [Production].[TransactionHistory]( + [ProductID] + ,[ReferenceOrderID] + ,[TransactionType] + ,[TransactionDate] + ,[Quantity]) + SELECT + inserted.[ProductID] + ,inserted.[WorkOrderID] + ,'W' + ,GETDATE() + ,inserted.[OrderQty] + FROM inserted; + END; + END TRY + BEGIN CATCH + EXECUTE [dbo].[uspPrintError]; + + -- Rollback any active or uncommittable transactions before + -- inserting information in the ErrorLog + IF @@TRANCOUNT > 0 + BEGIN + ROLLBACK TRANSACTION; + END + + EXECUTE [dbo].[uspLogError]; + END CATCH; +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/triggers/Purchasing.dVendor.sql b/snapshots/AdventureWorks2017/_sql-database/triggers/Purchasing.dVendor.sql new file mode 100644 index 0000000..2a04b27 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/triggers/Purchasing.dVendor.sql @@ -0,0 +1,46 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Purchasing].[dVendor]') AND type = 'TR') +DROP TRIGGER [Purchasing].[dVendor] +GO + +CREATE TRIGGER [Purchasing].[dVendor] ON [Purchasing].[Vendor] +INSTEAD OF DELETE NOT FOR REPLICATION AS +BEGIN + DECLARE @Count int; + + SET @Count = @@ROWCOUNT; + IF @Count = 0 + RETURN; + + SET NOCOUNT ON; + + BEGIN TRY + DECLARE @DeleteCount int; + + SELECT @DeleteCount = COUNT(*) FROM deleted; + IF @DeleteCount > 0 + BEGIN + RAISERROR + (N'Vendors cannot be deleted. They can only be marked as not active.', -- Message + 10, -- Severity. + 1); -- State. + + -- Rollback any active or uncommittable transactions + IF @@TRANCOUNT > 0 + BEGIN + ROLLBACK TRANSACTION; + END + END; + END TRY + BEGIN CATCH + EXECUTE [dbo].[uspPrintError]; + + -- Rollback any active or uncommittable transactions before + -- inserting information in the ErrorLog + IF @@TRANCOUNT > 0 + BEGIN + ROLLBACK TRANSACTION; + END + + EXECUTE [dbo].[uspLogError]; + END CATCH; +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/triggers/Purchasing.iPurchaseOrderDetail.sql b/snapshots/AdventureWorks2017/_sql-database/triggers/Purchasing.iPurchaseOrderDetail.sql new file mode 100644 index 0000000..29aff28 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/triggers/Purchasing.iPurchaseOrderDetail.sql @@ -0,0 +1,58 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Purchasing].[iPurchaseOrderDetail]') AND type = 'TR') +DROP TRIGGER [Purchasing].[iPurchaseOrderDetail] +GO + +CREATE TRIGGER [Purchasing].[iPurchaseOrderDetail] ON [Purchasing].[PurchaseOrderDetail] +AFTER INSERT AS +BEGIN + DECLARE @Count int; + + SET @Count = @@ROWCOUNT; + IF @Count = 0 + RETURN; + + SET NOCOUNT ON; + + BEGIN TRY + INSERT INTO [Production].[TransactionHistory] + ([ProductID] + ,[ReferenceOrderID] + ,[ReferenceOrderLineID] + ,[TransactionType] + ,[TransactionDate] + ,[Quantity] + ,[ActualCost]) + SELECT + inserted.[ProductID] + ,inserted.[PurchaseOrderID] + ,inserted.[PurchaseOrderDetailID] + ,'P' + ,GETDATE() + ,inserted.[OrderQty] + ,inserted.[UnitPrice] + FROM inserted + INNER JOIN [Purchasing].[PurchaseOrderHeader] + ON inserted.[PurchaseOrderID] = [Purchasing].[PurchaseOrderHeader].[PurchaseOrderID]; + + -- Update SubTotal in PurchaseOrderHeader record. Note that this causes the + -- PurchaseOrderHeader trigger to fire which will update the RevisionNumber. + UPDATE [Purchasing].[PurchaseOrderHeader] + SET [Purchasing].[PurchaseOrderHeader].[SubTotal] = + (SELECT SUM([Purchasing].[PurchaseOrderDetail].[LineTotal]) + FROM [Purchasing].[PurchaseOrderDetail] + WHERE [Purchasing].[PurchaseOrderHeader].[PurchaseOrderID] = [Purchasing].[PurchaseOrderDetail].[PurchaseOrderID]) + WHERE [Purchasing].[PurchaseOrderHeader].[PurchaseOrderID] IN (SELECT inserted.[PurchaseOrderID] FROM inserted); + END TRY + BEGIN CATCH + EXECUTE [dbo].[uspPrintError]; + + -- Rollback any active or uncommittable transactions before + -- inserting information in the ErrorLog + IF @@TRANCOUNT > 0 + BEGIN + ROLLBACK TRANSACTION; + END + + EXECUTE [dbo].[uspLogError]; + END CATCH; +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/triggers/Purchasing.uPurchaseOrderDetail.sql b/snapshots/AdventureWorks2017/_sql-database/triggers/Purchasing.uPurchaseOrderDetail.sql new file mode 100644 index 0000000..3b08883 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/triggers/Purchasing.uPurchaseOrderDetail.sql @@ -0,0 +1,70 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Purchasing].[uPurchaseOrderDetail]') AND type = 'TR') +DROP TRIGGER [Purchasing].[uPurchaseOrderDetail] +GO + +CREATE TRIGGER [Purchasing].[uPurchaseOrderDetail] ON [Purchasing].[PurchaseOrderDetail] +AFTER UPDATE AS +BEGIN + DECLARE @Count int; + + SET @Count = @@ROWCOUNT; + IF @Count = 0 + RETURN; + + SET NOCOUNT ON; + + BEGIN TRY + IF UPDATE([ProductID]) OR UPDATE([OrderQty]) OR UPDATE([UnitPrice]) + -- Insert record into TransactionHistory + BEGIN + INSERT INTO [Production].[TransactionHistory] + ([ProductID] + ,[ReferenceOrderID] + ,[ReferenceOrderLineID] + ,[TransactionType] + ,[TransactionDate] + ,[Quantity] + ,[ActualCost]) + SELECT + inserted.[ProductID] + ,inserted.[PurchaseOrderID] + ,inserted.[PurchaseOrderDetailID] + ,'P' + ,GETDATE() + ,inserted.[OrderQty] + ,inserted.[UnitPrice] + FROM inserted + INNER JOIN [Purchasing].[PurchaseOrderDetail] + ON inserted.[PurchaseOrderID] = [Purchasing].[PurchaseOrderDetail].[PurchaseOrderID]; + + -- Update SubTotal in PurchaseOrderHeader record. Note that this causes the + -- PurchaseOrderHeader trigger to fire which will update the RevisionNumber. + UPDATE [Purchasing].[PurchaseOrderHeader] + SET [Purchasing].[PurchaseOrderHeader].[SubTotal] = + (SELECT SUM([Purchasing].[PurchaseOrderDetail].[LineTotal]) + FROM [Purchasing].[PurchaseOrderDetail] + WHERE [Purchasing].[PurchaseOrderHeader].[PurchaseOrderID] + = [Purchasing].[PurchaseOrderDetail].[PurchaseOrderID]) + WHERE [Purchasing].[PurchaseOrderHeader].[PurchaseOrderID] + IN (SELECT inserted.[PurchaseOrderID] FROM inserted); + + UPDATE [Purchasing].[PurchaseOrderDetail] + SET [Purchasing].[PurchaseOrderDetail].[ModifiedDate] = GETDATE() + FROM inserted + WHERE inserted.[PurchaseOrderID] = [Purchasing].[PurchaseOrderDetail].[PurchaseOrderID] + AND inserted.[PurchaseOrderDetailID] = [Purchasing].[PurchaseOrderDetail].[PurchaseOrderDetailID]; + END; + END TRY + BEGIN CATCH + EXECUTE [dbo].[uspPrintError]; + + -- Rollback any active or uncommittable transactions before + -- inserting information in the ErrorLog + IF @@TRANCOUNT > 0 + BEGIN + ROLLBACK TRANSACTION; + END + + EXECUTE [dbo].[uspLogError]; + END CATCH; +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/triggers/Purchasing.uPurchaseOrderHeader.sql b/snapshots/AdventureWorks2017/_sql-database/triggers/Purchasing.uPurchaseOrderHeader.sql new file mode 100644 index 0000000..0198476 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/triggers/Purchasing.uPurchaseOrderHeader.sql @@ -0,0 +1,39 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Purchasing].[uPurchaseOrderHeader]') AND type = 'TR') +DROP TRIGGER [Purchasing].[uPurchaseOrderHeader] +GO + +CREATE TRIGGER [Purchasing].[uPurchaseOrderHeader] ON [Purchasing].[PurchaseOrderHeader] +AFTER UPDATE AS +BEGIN + DECLARE @Count int; + + SET @Count = @@ROWCOUNT; + IF @Count = 0 + RETURN; + + SET NOCOUNT ON; + + BEGIN TRY + -- Update RevisionNumber for modification of any field EXCEPT the Status. + IF NOT UPDATE([Status]) + BEGIN + UPDATE [Purchasing].[PurchaseOrderHeader] + SET [Purchasing].[PurchaseOrderHeader].[RevisionNumber] = + [Purchasing].[PurchaseOrderHeader].[RevisionNumber] + 1 + WHERE [Purchasing].[PurchaseOrderHeader].[PurchaseOrderID] IN + (SELECT inserted.[PurchaseOrderID] FROM inserted); + END; + END TRY + BEGIN CATCH + EXECUTE [dbo].[uspPrintError]; + + -- Rollback any active or uncommittable transactions before + -- inserting information in the ErrorLog + IF @@TRANCOUNT > 0 + BEGIN + ROLLBACK TRANSACTION; + END + + EXECUTE [dbo].[uspLogError]; + END CATCH; +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/triggers/Sales.iduSalesOrderDetail.sql b/snapshots/AdventureWorks2017/_sql-database/triggers/Sales.iduSalesOrderDetail.sql new file mode 100644 index 0000000..959c20d --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/triggers/Sales.iduSalesOrderDetail.sql @@ -0,0 +1,87 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[iduSalesOrderDetail]') AND type = 'TR') +DROP TRIGGER [Sales].[iduSalesOrderDetail] +GO + +CREATE TRIGGER [Sales].[iduSalesOrderDetail] ON [Sales].[SalesOrderDetail] +AFTER INSERT, DELETE, UPDATE AS +BEGIN + DECLARE @Count int; + + SET @Count = @@ROWCOUNT; + IF @Count = 0 + RETURN; + + SET NOCOUNT ON; + + BEGIN TRY + -- If inserting or updating these columns + IF UPDATE([ProductID]) OR UPDATE([OrderQty]) OR UPDATE([UnitPrice]) OR UPDATE([UnitPriceDiscount]) + -- Insert record into TransactionHistory + BEGIN + INSERT INTO [Production].[TransactionHistory] + ([ProductID] + ,[ReferenceOrderID] + ,[ReferenceOrderLineID] + ,[TransactionType] + ,[TransactionDate] + ,[Quantity] + ,[ActualCost]) + SELECT + inserted.[ProductID] + ,inserted.[SalesOrderID] + ,inserted.[SalesOrderDetailID] + ,'S' + ,GETDATE() + ,inserted.[OrderQty] + ,inserted.[UnitPrice] + FROM inserted + INNER JOIN [Sales].[SalesOrderHeader] + ON inserted.[SalesOrderID] = [Sales].[SalesOrderHeader].[SalesOrderID]; + + UPDATE [Person].[Person] + SET [Demographics].modify('declare default element namespace + "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; + replace value of (/IndividualSurvey/TotalPurchaseYTD)[1] + with data(/IndividualSurvey/TotalPurchaseYTD)[1] + sql:column ("inserted.LineTotal")') + FROM inserted + INNER JOIN [Sales].[SalesOrderHeader] AS SOH + ON inserted.[SalesOrderID] = SOH.[SalesOrderID] + INNER JOIN [Sales].[Customer] AS C + ON SOH.[CustomerID] = C.[CustomerID] + WHERE C.[PersonID] = [Person].[Person].[BusinessEntityID]; + END; + + -- Update SubTotal in SalesOrderHeader record. Note that this causes the + -- SalesOrderHeader trigger to fire which will update the RevisionNumber. + UPDATE [Sales].[SalesOrderHeader] + SET [Sales].[SalesOrderHeader].[SubTotal] = + (SELECT SUM([Sales].[SalesOrderDetail].[LineTotal]) + FROM [Sales].[SalesOrderDetail] + WHERE [Sales].[SalesOrderHeader].[SalesOrderID] = [Sales].[SalesOrderDetail].[SalesOrderID]) + WHERE [Sales].[SalesOrderHeader].[SalesOrderID] IN (SELECT inserted.[SalesOrderID] FROM inserted); + + UPDATE [Person].[Person] + SET [Demographics].modify('declare default element namespace + "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; + replace value of (/IndividualSurvey/TotalPurchaseYTD)[1] + with data(/IndividualSurvey/TotalPurchaseYTD)[1] - sql:column("deleted.LineTotal")') + FROM deleted + INNER JOIN [Sales].[SalesOrderHeader] + ON deleted.[SalesOrderID] = [Sales].[SalesOrderHeader].[SalesOrderID] + INNER JOIN [Sales].[Customer] + ON [Sales].[Customer].[CustomerID] = [Sales].[SalesOrderHeader].[CustomerID] + WHERE [Sales].[Customer].[PersonID] = [Person].[Person].[BusinessEntityID]; + END TRY + BEGIN CATCH + EXECUTE [dbo].[uspPrintError]; + + -- Rollback any active or uncommittable transactions before + -- inserting information in the ErrorLog + IF @@TRANCOUNT > 0 + BEGIN + ROLLBACK TRANSACTION; + END + + EXECUTE [dbo].[uspLogError]; + END CATCH; +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/triggers/Sales.uSalesOrderHeader.sql b/snapshots/AdventureWorks2017/_sql-database/triggers/Sales.uSalesOrderHeader.sql new file mode 100644 index 0000000..4402d6a --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/triggers/Sales.uSalesOrderHeader.sql @@ -0,0 +1,72 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[uSalesOrderHeader]') AND type = 'TR') +DROP TRIGGER [Sales].[uSalesOrderHeader] +GO + +CREATE TRIGGER [Sales].[uSalesOrderHeader] ON [Sales].[SalesOrderHeader] +AFTER UPDATE NOT FOR REPLICATION AS +BEGIN + DECLARE @Count int; + + SET @Count = @@ROWCOUNT; + IF @Count = 0 + RETURN; + + SET NOCOUNT ON; + + BEGIN TRY + -- Update RevisionNumber for modification of any field EXCEPT the Status. + IF NOT UPDATE([Status]) + BEGIN + UPDATE [Sales].[SalesOrderHeader] + SET [Sales].[SalesOrderHeader].[RevisionNumber] = + [Sales].[SalesOrderHeader].[RevisionNumber] + 1 + WHERE [Sales].[SalesOrderHeader].[SalesOrderID] IN + (SELECT inserted.[SalesOrderID] FROM inserted); + END; + + -- Update the SalesPerson SalesYTD when SubTotal is updated + IF UPDATE([SubTotal]) + BEGIN + DECLARE @StartDate datetime, + @EndDate datetime + + SET @StartDate = [dbo].[ufnGetAccountingStartDate](); + SET @EndDate = [dbo].[ufnGetAccountingEndDate](); + + UPDATE [Sales].[SalesPerson] + SET [Sales].[SalesPerson].[SalesYTD] = + (SELECT SUM([Sales].[SalesOrderHeader].[SubTotal]) + FROM [Sales].[SalesOrderHeader] + WHERE [Sales].[SalesPerson].[BusinessEntityID] = [Sales].[SalesOrderHeader].[SalesPersonID] + AND ([Sales].[SalesOrderHeader].[Status] = 5) -- Shipped + AND [Sales].[SalesOrderHeader].[OrderDate] BETWEEN @StartDate AND @EndDate) + WHERE [Sales].[SalesPerson].[BusinessEntityID] + IN (SELECT DISTINCT inserted.[SalesPersonID] FROM inserted + WHERE inserted.[OrderDate] BETWEEN @StartDate AND @EndDate); + + -- Update the SalesTerritory SalesYTD when SubTotal is updated + UPDATE [Sales].[SalesTerritory] + SET [Sales].[SalesTerritory].[SalesYTD] = + (SELECT SUM([Sales].[SalesOrderHeader].[SubTotal]) + FROM [Sales].[SalesOrderHeader] + WHERE [Sales].[SalesTerritory].[TerritoryID] = [Sales].[SalesOrderHeader].[TerritoryID] + AND ([Sales].[SalesOrderHeader].[Status] = 5) -- Shipped + AND [Sales].[SalesOrderHeader].[OrderDate] BETWEEN @StartDate AND @EndDate) + WHERE [Sales].[SalesTerritory].[TerritoryID] + IN (SELECT DISTINCT inserted.[TerritoryID] FROM inserted + WHERE inserted.[OrderDate] BETWEEN @StartDate AND @EndDate); + END; + END TRY + BEGIN CATCH + EXECUTE [dbo].[uspPrintError]; + + -- Rollback any active or uncommittable transactions before + -- inserting information in the ErrorLog + IF @@TRANCOUNT > 0 + BEGIN + ROLLBACK TRANSACTION; + END + + EXECUTE [dbo].[uspLogError]; + END CATCH; +END; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/types/dbo.AccountNumber.sql b/snapshots/AdventureWorks2017/_sql-database/types/dbo.AccountNumber.sql new file mode 100644 index 0000000..0422668 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/types/dbo.AccountNumber.sql @@ -0,0 +1,7 @@ +IF NOT EXISTS ( + SELECT 1 FROM sys.types AS t + JOIN sys.schemas s ON t.schema_id = s.schema_id + WHERE t.name = 'AccountNumber' AND s.name = 'dbo' +) +CREATE TYPE [dbo].[AccountNumber] +FROM NVARCHAR(30) NULL \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/types/dbo.Flag.sql b/snapshots/AdventureWorks2017/_sql-database/types/dbo.Flag.sql new file mode 100644 index 0000000..e6e4389 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/types/dbo.Flag.sql @@ -0,0 +1,7 @@ +IF NOT EXISTS ( + SELECT 1 FROM sys.types AS t + JOIN sys.schemas s ON t.schema_id = s.schema_id + WHERE t.name = 'Flag' AND s.name = 'dbo' +) +CREATE TYPE [dbo].[Flag] +FROM BIT NOT NULL \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/types/dbo.Name.sql b/snapshots/AdventureWorks2017/_sql-database/types/dbo.Name.sql new file mode 100644 index 0000000..202e246 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/types/dbo.Name.sql @@ -0,0 +1,7 @@ +IF NOT EXISTS ( + SELECT 1 FROM sys.types AS t + JOIN sys.schemas s ON t.schema_id = s.schema_id + WHERE t.name = 'Name' AND s.name = 'dbo' +) +CREATE TYPE [dbo].[Name] +FROM NVARCHAR(100) NULL \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/types/dbo.NameStyle.sql b/snapshots/AdventureWorks2017/_sql-database/types/dbo.NameStyle.sql new file mode 100644 index 0000000..2f6235a --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/types/dbo.NameStyle.sql @@ -0,0 +1,7 @@ +IF NOT EXISTS ( + SELECT 1 FROM sys.types AS t + JOIN sys.schemas s ON t.schema_id = s.schema_id + WHERE t.name = 'NameStyle' AND s.name = 'dbo' +) +CREATE TYPE [dbo].[NameStyle] +FROM BIT NOT NULL \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/types/dbo.OrderNumber.sql b/snapshots/AdventureWorks2017/_sql-database/types/dbo.OrderNumber.sql new file mode 100644 index 0000000..ce87954 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/types/dbo.OrderNumber.sql @@ -0,0 +1,7 @@ +IF NOT EXISTS ( + SELECT 1 FROM sys.types AS t + JOIN sys.schemas s ON t.schema_id = s.schema_id + WHERE t.name = 'OrderNumber' AND s.name = 'dbo' +) +CREATE TYPE [dbo].[OrderNumber] +FROM NVARCHAR(50) NULL \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/types/dbo.Phone.sql b/snapshots/AdventureWorks2017/_sql-database/types/dbo.Phone.sql new file mode 100644 index 0000000..8b7977b --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/types/dbo.Phone.sql @@ -0,0 +1,7 @@ +IF NOT EXISTS ( + SELECT 1 FROM sys.types AS t + JOIN sys.schemas s ON t.schema_id = s.schema_id + WHERE t.name = 'Phone' AND s.name = 'dbo' +) +CREATE TYPE [dbo].[Phone] +FROM NVARCHAR(50) NULL \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/views/HumanResources.vEmployee.sql b/snapshots/AdventureWorks2017/_sql-database/views/HumanResources.vEmployee.sql new file mode 100644 index 0000000..a37b98d --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/views/HumanResources.vEmployee.sql @@ -0,0 +1,42 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[HumanResources].[vEmployee]') AND type = 'V') +DROP VIEW [HumanResources].[vEmployee] +GO + +CREATE VIEW [HumanResources].[vEmployee] +AS +SELECT + e.[BusinessEntityID] + ,p.[Title] + ,p.[FirstName] + ,p.[MiddleName] + ,p.[LastName] + ,p.[Suffix] + ,e.[JobTitle] + ,pp.[PhoneNumber] + ,pnt.[Name] AS [PhoneNumberType] + ,ea.[EmailAddress] + ,p.[EmailPromotion] + ,a.[AddressLine1] + ,a.[AddressLine2] + ,a.[City] + ,sp.[Name] AS [StateProvinceName] + ,a.[PostalCode] + ,cr.[Name] AS [CountryRegionName] + ,p.[AdditionalContactInfo] +FROM [HumanResources].[Employee] e + INNER JOIN [Person].[Person] p + ON p.[BusinessEntityID] = e.[BusinessEntityID] + INNER JOIN [Person].[BusinessEntityAddress] bea + ON bea.[BusinessEntityID] = e.[BusinessEntityID] + INNER JOIN [Person].[Address] a + ON a.[AddressID] = bea.[AddressID] + INNER JOIN [Person].[StateProvince] sp + ON sp.[StateProvinceID] = a.[StateProvinceID] + INNER JOIN [Person].[CountryRegion] cr + ON cr.[CountryRegionCode] = sp.[CountryRegionCode] + LEFT OUTER JOIN [Person].[PersonPhone] pp + ON pp.BusinessEntityID = p.[BusinessEntityID] + LEFT OUTER JOIN [Person].[PhoneNumberType] pnt + ON pp.[PhoneNumberTypeID] = pnt.[PhoneNumberTypeID] + LEFT OUTER JOIN [Person].[EmailAddress] ea + ON p.[BusinessEntityID] = ea.[BusinessEntityID]; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/views/HumanResources.vEmployeeDepartment.sql b/snapshots/AdventureWorks2017/_sql-database/views/HumanResources.vEmployeeDepartment.sql new file mode 100644 index 0000000..64fd0e6 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/views/HumanResources.vEmployeeDepartment.sql @@ -0,0 +1,25 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[HumanResources].[vEmployeeDepartment]') AND type = 'V') +DROP VIEW [HumanResources].[vEmployeeDepartment] +GO + +CREATE VIEW [HumanResources].[vEmployeeDepartment] +AS +SELECT + e.[BusinessEntityID] + ,p.[Title] + ,p.[FirstName] + ,p.[MiddleName] + ,p.[LastName] + ,p.[Suffix] + ,e.[JobTitle] + ,d.[Name] AS [Department] + ,d.[GroupName] + ,edh.[StartDate] +FROM [HumanResources].[Employee] e + INNER JOIN [Person].[Person] p + ON p.[BusinessEntityID] = e.[BusinessEntityID] + INNER JOIN [HumanResources].[EmployeeDepartmentHistory] edh + ON e.[BusinessEntityID] = edh.[BusinessEntityID] + INNER JOIN [HumanResources].[Department] d + ON edh.[DepartmentID] = d.[DepartmentID] +WHERE edh.EndDate IS NULL \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/views/HumanResources.vEmployeeDepartmentHistory.sql b/snapshots/AdventureWorks2017/_sql-database/views/HumanResources.vEmployeeDepartmentHistory.sql new file mode 100644 index 0000000..f8cc0f3 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/views/HumanResources.vEmployeeDepartmentHistory.sql @@ -0,0 +1,27 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[HumanResources].[vEmployeeDepartmentHistory]') AND type = 'V') +DROP VIEW [HumanResources].[vEmployeeDepartmentHistory] +GO + +CREATE VIEW [HumanResources].[vEmployeeDepartmentHistory] +AS +SELECT + e.[BusinessEntityID] + ,p.[Title] + ,p.[FirstName] + ,p.[MiddleName] + ,p.[LastName] + ,p.[Suffix] + ,s.[Name] AS [Shift] + ,d.[Name] AS [Department] + ,d.[GroupName] + ,edh.[StartDate] + ,edh.[EndDate] +FROM [HumanResources].[Employee] e + INNER JOIN [Person].[Person] p + ON p.[BusinessEntityID] = e.[BusinessEntityID] + INNER JOIN [HumanResources].[EmployeeDepartmentHistory] edh + ON e.[BusinessEntityID] = edh.[BusinessEntityID] + INNER JOIN [HumanResources].[Department] d + ON edh.[DepartmentID] = d.[DepartmentID] + INNER JOIN [HumanResources].[Shift] s + ON s.[ShiftID] = edh.[ShiftID]; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/views/HumanResources.vJobCandidate.sql b/snapshots/AdventureWorks2017/_sql-database/views/HumanResources.vJobCandidate.sql new file mode 100644 index 0000000..8a1a162 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/views/HumanResources.vJobCandidate.sql @@ -0,0 +1,39 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[HumanResources].[vJobCandidate]') AND type = 'V') +DROP VIEW [HumanResources].[vJobCandidate] +GO + +CREATE VIEW [HumanResources].[vJobCandidate] +AS +SELECT + jc.[JobCandidateID] + ,jc.[BusinessEntityID] + ,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (/Resume/Name/Name.Prefix)[1]', 'nvarchar(30)') AS [Name.Prefix] + ,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (/Resume/Name/Name.First)[1]', 'nvarchar(30)') AS [Name.First] + ,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (/Resume/Name/Name.Middle)[1]', 'nvarchar(30)') AS [Name.Middle] + ,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (/Resume/Name/Name.Last)[1]', 'nvarchar(30)') AS [Name.Last] + ,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (/Resume/Name/Name.Suffix)[1]', 'nvarchar(30)') AS [Name.Suffix] + ,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (/Resume/Skills)[1]', 'nvarchar(max)') AS [Skills] + ,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Address/Addr.Type)[1]', 'nvarchar(30)') AS [Addr.Type] + ,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Address/Addr.Location/Location/Loc.CountryRegion)[1]', 'nvarchar(100)') AS [Addr.Loc.CountryRegion] + ,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Address/Addr.Location/Location/Loc.State)[1]', 'nvarchar(100)') AS [Addr.Loc.State] + ,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Address/Addr.Location/Location/Loc.City)[1]', 'nvarchar(100)') AS [Addr.Loc.City] + ,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Address/Addr.PostalCode)[1]', 'nvarchar(20)') AS [Addr.PostalCode] + ,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (/Resume/EMail)[1]', 'nvarchar(max)') AS [EMail] + ,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (/Resume/WebSite)[1]', 'nvarchar(max)') AS [WebSite] + ,jc.[ModifiedDate] +FROM [HumanResources].[JobCandidate] jc +CROSS APPLY jc.[Resume].nodes(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + /Resume') AS Resume(ref); \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/views/HumanResources.vJobCandidateEducation.sql b/snapshots/AdventureWorks2017/_sql-database/views/HumanResources.vJobCandidateEducation.sql new file mode 100644 index 0000000..7279a97 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/views/HumanResources.vJobCandidateEducation.sql @@ -0,0 +1,35 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[HumanResources].[vJobCandidateEducation]') AND type = 'V') +DROP VIEW [HumanResources].[vJobCandidateEducation] +GO + +CREATE VIEW [HumanResources].[vJobCandidateEducation] +AS +SELECT + jc.[JobCandidateID] + ,[Education].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Edu.Level)[1]', 'nvarchar(max)') AS [Edu.Level] + ,CONVERT(datetime, REPLACE([Education].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Edu.StartDate)[1]', 'nvarchar(20)') ,'Z', ''), 101) AS [Edu.StartDate] + ,CONVERT(datetime, REPLACE([Education].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Edu.EndDate)[1]', 'nvarchar(20)') ,'Z', ''), 101) AS [Edu.EndDate] + ,[Education].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Edu.Degree)[1]', 'nvarchar(50)') AS [Edu.Degree] + ,[Education].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Edu.Major)[1]', 'nvarchar(50)') AS [Edu.Major] + ,[Education].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Edu.Minor)[1]', 'nvarchar(50)') AS [Edu.Minor] + ,[Education].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Edu.GPA)[1]', 'nvarchar(5)') AS [Edu.GPA] + ,[Education].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Edu.GPAScale)[1]', 'nvarchar(5)') AS [Edu.GPAScale] + ,[Education].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Edu.School)[1]', 'nvarchar(100)') AS [Edu.School] + ,[Education].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Edu.Location/Location/Loc.CountryRegion)[1]', 'nvarchar(100)') AS [Edu.Loc.CountryRegion] + ,[Education].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Edu.Location/Location/Loc.State)[1]', 'nvarchar(100)') AS [Edu.Loc.State] + ,[Education].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Edu.Location/Location/Loc.City)[1]', 'nvarchar(100)') AS [Edu.Loc.City] +FROM [HumanResources].[JobCandidate] jc +CROSS APPLY jc.[Resume].nodes(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + /Resume/Education') AS [Education](ref); \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/views/HumanResources.vJobCandidateEmployment.sql b/snapshots/AdventureWorks2017/_sql-database/views/HumanResources.vJobCandidateEmployment.sql new file mode 100644 index 0000000..2f421ae --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/views/HumanResources.vJobCandidateEmployment.sql @@ -0,0 +1,31 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[HumanResources].[vJobCandidateEmployment]') AND type = 'V') +DROP VIEW [HumanResources].[vJobCandidateEmployment] +GO + +CREATE VIEW [HumanResources].[vJobCandidateEmployment] +AS +SELECT + jc.[JobCandidateID] + ,CONVERT(datetime, REPLACE([Employment].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Emp.StartDate)[1]', 'nvarchar(20)') ,'Z', ''), 101) AS [Emp.StartDate] + ,CONVERT(datetime, REPLACE([Employment].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Emp.EndDate)[1]', 'nvarchar(20)') ,'Z', ''), 101) AS [Emp.EndDate] + ,[Employment].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Emp.OrgName)[1]', 'nvarchar(100)') AS [Emp.OrgName] + ,[Employment].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Emp.JobTitle)[1]', 'nvarchar(100)') AS [Emp.JobTitle] + ,[Employment].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Emp.Responsibility)[1]', 'nvarchar(max)') AS [Emp.Responsibility] + ,[Employment].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Emp.FunctionCategory)[1]', 'nvarchar(max)') AS [Emp.FunctionCategory] + ,[Employment].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Emp.IndustryCategory)[1]', 'nvarchar(max)') AS [Emp.IndustryCategory] + ,[Employment].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Emp.Location/Location/Loc.CountryRegion)[1]', 'nvarchar(max)') AS [Emp.Loc.CountryRegion] + ,[Employment].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Emp.Location/Location/Loc.State)[1]', 'nvarchar(max)') AS [Emp.Loc.State] + ,[Employment].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + (Emp.Location/Location/Loc.City)[1]', 'nvarchar(max)') AS [Emp.Loc.City] +FROM [HumanResources].[JobCandidate] jc +CROSS APPLY jc.[Resume].nodes(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume"; + /Resume/Employment') AS Employment(ref); \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/views/Person.vAdditionalContactInfo.sql b/snapshots/AdventureWorks2017/_sql-database/views/Person.vAdditionalContactInfo.sql new file mode 100644 index 0000000..a43b3f1 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/views/Person.vAdditionalContactInfo.sql @@ -0,0 +1,51 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Person].[vAdditionalContactInfo]') AND type = 'V') +DROP VIEW [Person].[vAdditionalContactInfo] +GO + +CREATE VIEW [Person].[vAdditionalContactInfo] +AS +SELECT + [BusinessEntityID] + ,[FirstName] + ,[MiddleName] + ,[LastName] + ,[ContactInfo].ref.value(N'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo"; + declare namespace act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes"; + (act:telephoneNumber)[1]/act:number', 'nvarchar(50)') AS [TelephoneNumber] + ,LTRIM(RTRIM([ContactInfo].ref.value(N'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo"; + declare namespace act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes"; + (act:telephoneNumber/act:SpecialInstructions/text())[1]', 'nvarchar(max)'))) AS [TelephoneSpecialInstructions] + ,[ContactInfo].ref.value(N'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo"; + declare namespace act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes"; + (act:homePostalAddress/act:Street)[1]', 'nvarchar(50)') AS [Street] + ,[ContactInfo].ref.value(N'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo"; + declare namespace act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes"; + (act:homePostalAddress/act:City)[1]', 'nvarchar(50)') AS [City] + ,[ContactInfo].ref.value(N'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo"; + declare namespace act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes"; + (act:homePostalAddress/act:StateProvince)[1]', 'nvarchar(50)') AS [StateProvince] + ,[ContactInfo].ref.value(N'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo"; + declare namespace act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes"; + (act:homePostalAddress/act:PostalCode)[1]', 'nvarchar(50)') AS [PostalCode] + ,[ContactInfo].ref.value(N'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo"; + declare namespace act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes"; + (act:homePostalAddress/act:CountryRegion)[1]', 'nvarchar(50)') AS [CountryRegion] + ,[ContactInfo].ref.value(N'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo"; + declare namespace act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes"; + (act:homePostalAddress/act:SpecialInstructions/text())[1]', 'nvarchar(max)') AS [HomeAddressSpecialInstructions] + ,[ContactInfo].ref.value(N'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo"; + declare namespace act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes"; + (act:eMail/act:eMailAddress)[1]', 'nvarchar(128)') AS [EMailAddress] + ,LTRIM(RTRIM([ContactInfo].ref.value(N'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo"; + declare namespace act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes"; + (act:eMail/act:SpecialInstructions/text())[1]', 'nvarchar(max)'))) AS [EMailSpecialInstructions] + ,[ContactInfo].ref.value(N'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo"; + declare namespace act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes"; + (act:eMail/act:SpecialInstructions/act:telephoneNumber/act:number)[1]', 'nvarchar(50)') AS [EMailTelephoneNumber] + ,[rowguid] + ,[ModifiedDate] +FROM [Person].[Person] +OUTER APPLY [AdditionalContactInfo].nodes( + 'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo"; + /ci:AdditionalContactInfo') AS ContactInfo(ref) +WHERE [AdditionalContactInfo] IS NOT NULL; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/views/Person.vStateProvinceCountryRegion.sql b/snapshots/AdventureWorks2017/_sql-database/views/Person.vStateProvinceCountryRegion.sql new file mode 100644 index 0000000..635450b --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/views/Person.vStateProvinceCountryRegion.sql @@ -0,0 +1,18 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Person].[vStateProvinceCountryRegion]') AND type = 'V') +DROP VIEW [Person].[vStateProvinceCountryRegion] +GO + +CREATE VIEW [Person].[vStateProvinceCountryRegion] +WITH SCHEMABINDING +AS +SELECT + sp.[StateProvinceID] + ,sp.[StateProvinceCode] + ,sp.[IsOnlyStateProvinceFlag] + ,sp.[Name] AS [StateProvinceName] + ,sp.[TerritoryID] + ,cr.[CountryRegionCode] + ,cr.[Name] AS [CountryRegionName] +FROM [Person].[StateProvince] sp + INNER JOIN [Person].[CountryRegion] cr + ON sp.[CountryRegionCode] = cr.[CountryRegionCode]; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/views/Production.vProductAndDescription.sql b/snapshots/AdventureWorks2017/_sql-database/views/Production.vProductAndDescription.sql new file mode 100644 index 0000000..b3ac854 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/views/Production.vProductAndDescription.sql @@ -0,0 +1,21 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[vProductAndDescription]') AND type = 'V') +DROP VIEW [Production].[vProductAndDescription] +GO + +CREATE VIEW [Production].[vProductAndDescription] +WITH SCHEMABINDING +AS +-- View (indexed or standard) to display products and product descriptions by language. +SELECT + p.[ProductID] + ,p.[Name] + ,pm.[Name] AS [ProductModel] + ,pmx.[CultureID] + ,pd.[Description] +FROM [Production].[Product] p + INNER JOIN [Production].[ProductModel] pm + ON p.[ProductModelID] = pm.[ProductModelID] + INNER JOIN [Production].[ProductModelProductDescriptionCulture] pmx + ON pm.[ProductModelID] = pmx.[ProductModelID] + INNER JOIN [Production].[ProductDescription] pd + ON pmx.[ProductDescriptionID] = pd.[ProductDescriptionID]; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/views/Production.vProductModelCatalogDescription.sql b/snapshots/AdventureWorks2017/_sql-database/views/Production.vProductModelCatalogDescription.sql new file mode 100644 index 0000000..9083a00 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/views/Production.vProductModelCatalogDescription.sql @@ -0,0 +1,65 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[vProductModelCatalogDescription]') AND type = 'V') +DROP VIEW [Production].[vProductModelCatalogDescription] +GO + +CREATE VIEW [Production].[vProductModelCatalogDescription] +AS +SELECT + [ProductModelID] + ,[Name] + ,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"; + declare namespace html="http://www.w3.org/1999/xhtml"; + (/p1:ProductDescription/p1:Summary/html:p)[1]', 'nvarchar(max)') AS [Summary] + ,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"; + (/p1:ProductDescription/p1:Manufacturer/p1:Name)[1]', 'nvarchar(max)') AS [Manufacturer] + ,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"; + (/p1:ProductDescription/p1:Manufacturer/p1:Copyright)[1]', 'nvarchar(30)') AS [Copyright] + ,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"; + (/p1:ProductDescription/p1:Manufacturer/p1:ProductURL)[1]', 'nvarchar(256)') AS [ProductURL] + ,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"; + declare namespace wm="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain"; + (/p1:ProductDescription/p1:Features/wm:Warranty/wm:WarrantyPeriod)[1]', 'nvarchar(256)') AS [WarrantyPeriod] + ,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"; + declare namespace wm="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain"; + (/p1:ProductDescription/p1:Features/wm:Warranty/wm:Description)[1]', 'nvarchar(256)') AS [WarrantyDescription] + ,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"; + declare namespace wm="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain"; + (/p1:ProductDescription/p1:Features/wm:Maintenance/wm:NoOfYears)[1]', 'nvarchar(256)') AS [NoOfYears] + ,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"; + declare namespace wm="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain"; + (/p1:ProductDescription/p1:Features/wm:Maintenance/wm:Description)[1]', 'nvarchar(256)') AS [MaintenanceDescription] + ,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"; + declare namespace wf="http://www.adventure-works.com/schemas/OtherFeatures"; + (/p1:ProductDescription/p1:Features/wf:wheel)[1]', 'nvarchar(256)') AS [Wheel] + ,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"; + declare namespace wf="http://www.adventure-works.com/schemas/OtherFeatures"; + (/p1:ProductDescription/p1:Features/wf:saddle)[1]', 'nvarchar(256)') AS [Saddle] + ,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"; + declare namespace wf="http://www.adventure-works.com/schemas/OtherFeatures"; + (/p1:ProductDescription/p1:Features/wf:pedal)[1]', 'nvarchar(256)') AS [Pedal] + ,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"; + declare namespace wf="http://www.adventure-works.com/schemas/OtherFeatures"; + (/p1:ProductDescription/p1:Features/wf:BikeFrame)[1]', 'nvarchar(max)') AS [BikeFrame] + ,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"; + declare namespace wf="http://www.adventure-works.com/schemas/OtherFeatures"; + (/p1:ProductDescription/p1:Features/wf:crankset)[1]', 'nvarchar(256)') AS [Crankset] + ,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"; + (/p1:ProductDescription/p1:Picture/p1:Angle)[1]', 'nvarchar(256)') AS [PictureAngle] + ,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"; + (/p1:ProductDescription/p1:Picture/p1:Size)[1]', 'nvarchar(256)') AS [PictureSize] + ,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"; + (/p1:ProductDescription/p1:Picture/p1:ProductPhotoID)[1]', 'nvarchar(256)') AS [ProductPhotoID] + ,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"; + (/p1:ProductDescription/p1:Specifications/Material)[1]', 'nvarchar(256)') AS [Material] + ,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"; + (/p1:ProductDescription/p1:Specifications/Color)[1]', 'nvarchar(256)') AS [Color] + ,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"; + (/p1:ProductDescription/p1:Specifications/ProductLine)[1]', 'nvarchar(256)') AS [ProductLine] + ,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"; + (/p1:ProductDescription/p1:Specifications/Style)[1]', 'nvarchar(256)') AS [Style] + ,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"; + (/p1:ProductDescription/p1:Specifications/RiderExperience)[1]', 'nvarchar(1024)') AS [RiderExperience] + ,[rowguid] + ,[ModifiedDate] +FROM [Production].[ProductModel] +WHERE [CatalogDescription] IS NOT NULL; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/views/Production.vProductModelInstructions.sql b/snapshots/AdventureWorks2017/_sql-database/views/Production.vProductModelInstructions.sql new file mode 100644 index 0000000..838506a --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/views/Production.vProductModelInstructions.sql @@ -0,0 +1,24 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Production].[vProductModelInstructions]') AND type = 'V') +DROP VIEW [Production].[vProductModelInstructions] +GO + +CREATE VIEW [Production].[vProductModelInstructions] +AS +SELECT + [ProductModelID] + ,[Name] + ,[Instructions].value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions"; + (/root/text())[1]', 'nvarchar(max)') AS [Instructions] + ,[MfgInstructions].ref.value('@LocationID[1]', 'int') AS [LocationID] + ,[MfgInstructions].ref.value('@SetupHours[1]', 'decimal(9, 4)') AS [SetupHours] + ,[MfgInstructions].ref.value('@MachineHours[1]', 'decimal(9, 4)') AS [MachineHours] + ,[MfgInstructions].ref.value('@LaborHours[1]', 'decimal(9, 4)') AS [LaborHours] + ,[MfgInstructions].ref.value('@LotSize[1]', 'int') AS [LotSize] + ,[Steps].ref.value('string(.)[1]', 'nvarchar(1024)') AS [Step] + ,[rowguid] + ,[ModifiedDate] +FROM [Production].[ProductModel] +CROSS APPLY [Instructions].nodes(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions"; + /root/Location') MfgInstructions(ref) +CROSS APPLY [MfgInstructions].ref.nodes('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions"; + step') Steps(ref); \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/views/Purchasing.vVendorWithAddresses.sql b/snapshots/AdventureWorks2017/_sql-database/views/Purchasing.vVendorWithAddresses.sql new file mode 100644 index 0000000..90514ed --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/views/Purchasing.vVendorWithAddresses.sql @@ -0,0 +1,26 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Purchasing].[vVendorWithAddresses]') AND type = 'V') +DROP VIEW [Purchasing].[vVendorWithAddresses] +GO + +CREATE VIEW [Purchasing].[vVendorWithAddresses] AS +SELECT + v.[BusinessEntityID] + ,v.[Name] + ,at.[Name] AS [AddressType] + ,a.[AddressLine1] + ,a.[AddressLine2] + ,a.[City] + ,sp.[Name] AS [StateProvinceName] + ,a.[PostalCode] + ,cr.[Name] AS [CountryRegionName] +FROM [Purchasing].[Vendor] v + INNER JOIN [Person].[BusinessEntityAddress] bea + ON bea.[BusinessEntityID] = v.[BusinessEntityID] + INNER JOIN [Person].[Address] a + ON a.[AddressID] = bea.[AddressID] + INNER JOIN [Person].[StateProvince] sp + ON sp.[StateProvinceID] = a.[StateProvinceID] + INNER JOIN [Person].[CountryRegion] cr + ON cr.[CountryRegionCode] = sp.[CountryRegionCode] + INNER JOIN [Person].[AddressType] at + ON at.[AddressTypeID] = bea.[AddressTypeID]; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/views/Purchasing.vVendorWithContacts.sql b/snapshots/AdventureWorks2017/_sql-database/views/Purchasing.vVendorWithContacts.sql new file mode 100644 index 0000000..437aca0 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/views/Purchasing.vVendorWithContacts.sql @@ -0,0 +1,31 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Purchasing].[vVendorWithContacts]') AND type = 'V') +DROP VIEW [Purchasing].[vVendorWithContacts] +GO + +CREATE VIEW [Purchasing].[vVendorWithContacts] AS +SELECT + v.[BusinessEntityID] + ,v.[Name] + ,ct.[Name] AS [ContactType] + ,p.[Title] + ,p.[FirstName] + ,p.[MiddleName] + ,p.[LastName] + ,p.[Suffix] + ,pp.[PhoneNumber] + ,pnt.[Name] AS [PhoneNumberType] + ,ea.[EmailAddress] + ,p.[EmailPromotion] +FROM [Purchasing].[Vendor] v + INNER JOIN [Person].[BusinessEntityContact] bec + ON bec.[BusinessEntityID] = v.[BusinessEntityID] + INNER JOIN [Person].ContactType ct + ON ct.[ContactTypeID] = bec.[ContactTypeID] + INNER JOIN [Person].[Person] p + ON p.[BusinessEntityID] = bec.[PersonID] + LEFT OUTER JOIN [Person].[EmailAddress] ea + ON ea.[BusinessEntityID] = p.[BusinessEntityID] + LEFT OUTER JOIN [Person].[PersonPhone] pp + ON pp.[BusinessEntityID] = p.[BusinessEntityID] + LEFT OUTER JOIN [Person].[PhoneNumberType] pnt + ON pnt.[PhoneNumberTypeID] = pp.[PhoneNumberTypeID]; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/views/Sales.vIndividualCustomer.sql b/snapshots/AdventureWorks2017/_sql-database/views/Sales.vIndividualCustomer.sql new file mode 100644 index 0000000..4ab09f9 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/views/Sales.vIndividualCustomer.sql @@ -0,0 +1,45 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[vIndividualCustomer]') AND type = 'V') +DROP VIEW [Sales].[vIndividualCustomer] +GO + +CREATE VIEW [Sales].[vIndividualCustomer] +AS +SELECT + p.[BusinessEntityID] + ,p.[Title] + ,p.[FirstName] + ,p.[MiddleName] + ,p.[LastName] + ,p.[Suffix] + ,pp.[PhoneNumber] + ,pnt.[Name] AS [PhoneNumberType] + ,ea.[EmailAddress] + ,p.[EmailPromotion] + ,at.[Name] AS [AddressType] + ,a.[AddressLine1] + ,a.[AddressLine2] + ,a.[City] + ,[StateProvinceName] = sp.[Name] + ,a.[PostalCode] + ,[CountryRegionName] = cr.[Name] + ,p.[Demographics] +FROM [Person].[Person] p + INNER JOIN [Person].[BusinessEntityAddress] bea + ON bea.[BusinessEntityID] = p.[BusinessEntityID] + INNER JOIN [Person].[Address] a + ON a.[AddressID] = bea.[AddressID] + INNER JOIN [Person].[StateProvince] sp + ON sp.[StateProvinceID] = a.[StateProvinceID] + INNER JOIN [Person].[CountryRegion] cr + ON cr.[CountryRegionCode] = sp.[CountryRegionCode] + INNER JOIN [Person].[AddressType] at + ON at.[AddressTypeID] = bea.[AddressTypeID] + INNER JOIN [Sales].[Customer] c + ON c.[PersonID] = p.[BusinessEntityID] + LEFT OUTER JOIN [Person].[EmailAddress] ea + ON ea.[BusinessEntityID] = p.[BusinessEntityID] + LEFT OUTER JOIN [Person].[PersonPhone] pp + ON pp.[BusinessEntityID] = p.[BusinessEntityID] + LEFT OUTER JOIN [Person].[PhoneNumberType] pnt + ON pnt.[PhoneNumberTypeID] = pp.[PhoneNumberTypeID] +WHERE c.StoreID IS NULL; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/views/Sales.vPersonDemographics.sql b/snapshots/AdventureWorks2017/_sql-database/views/Sales.vPersonDemographics.sql new file mode 100644 index 0000000..171c9d4 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/views/Sales.vPersonDemographics.sql @@ -0,0 +1,36 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[vPersonDemographics]') AND type = 'V') +DROP VIEW [Sales].[vPersonDemographics] +GO + +CREATE VIEW [Sales].[vPersonDemographics] +AS +SELECT + p.[BusinessEntityID] + ,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; + TotalPurchaseYTD[1]', 'money') AS [TotalPurchaseYTD] + ,CONVERT(datetime, REPLACE([IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; + DateFirstPurchase[1]', 'nvarchar(20)') ,'Z', ''), 101) AS [DateFirstPurchase] + ,CONVERT(datetime, REPLACE([IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; + BirthDate[1]', 'nvarchar(20)') ,'Z', ''), 101) AS [BirthDate] + ,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; + MaritalStatus[1]', 'nvarchar(1)') AS [MaritalStatus] + ,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; + YearlyIncome[1]', 'nvarchar(30)') AS [YearlyIncome] + ,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; + Gender[1]', 'nvarchar(1)') AS [Gender] + ,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; + TotalChildren[1]', 'integer') AS [TotalChildren] + ,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; + NumberChildrenAtHome[1]', 'integer') AS [NumberChildrenAtHome] + ,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; + Education[1]', 'nvarchar(30)') AS [Education] + ,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; + Occupation[1]', 'nvarchar(30)') AS [Occupation] + ,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; + HomeOwnerFlag[1]', 'bit') AS [HomeOwnerFlag] + ,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; + NumberCarsOwned[1]', 'integer') AS [NumberCarsOwned] +FROM [Person].[Person] p +CROSS APPLY p.[Demographics].nodes(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; + /IndividualSurvey') AS [IndividualSurvey](ref) +WHERE [Demographics] IS NOT NULL; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/views/Sales.vSalesPerson.sql b/snapshots/AdventureWorks2017/_sql-database/views/Sales.vSalesPerson.sql new file mode 100644 index 0000000..dbbbfa5 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/views/Sales.vSalesPerson.sql @@ -0,0 +1,50 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[vSalesPerson]') AND type = 'V') +DROP VIEW [Sales].[vSalesPerson] +GO + +CREATE VIEW [Sales].[vSalesPerson] +AS +SELECT + s.[BusinessEntityID] + ,p.[Title] + ,p.[FirstName] + ,p.[MiddleName] + ,p.[LastName] + ,p.[Suffix] + ,e.[JobTitle] + ,pp.[PhoneNumber] + ,pnt.[Name] AS [PhoneNumberType] + ,ea.[EmailAddress] + ,p.[EmailPromotion] + ,a.[AddressLine1] + ,a.[AddressLine2] + ,a.[City] + ,[StateProvinceName] = sp.[Name] + ,a.[PostalCode] + ,[CountryRegionName] = cr.[Name] + ,[TerritoryName] = st.[Name] + ,[TerritoryGroup] = st.[Group] + ,s.[SalesQuota] + ,s.[SalesYTD] + ,s.[SalesLastYear] +FROM [Sales].[SalesPerson] s + INNER JOIN [HumanResources].[Employee] e + ON e.[BusinessEntityID] = s.[BusinessEntityID] + INNER JOIN [Person].[Person] p + ON p.[BusinessEntityID] = s.[BusinessEntityID] + INNER JOIN [Person].[BusinessEntityAddress] bea + ON bea.[BusinessEntityID] = s.[BusinessEntityID] + INNER JOIN [Person].[Address] a + ON a.[AddressID] = bea.[AddressID] + INNER JOIN [Person].[StateProvince] sp + ON sp.[StateProvinceID] = a.[StateProvinceID] + INNER JOIN [Person].[CountryRegion] cr + ON cr.[CountryRegionCode] = sp.[CountryRegionCode] + LEFT OUTER JOIN [Sales].[SalesTerritory] st + ON st.[TerritoryID] = s.[TerritoryID] + LEFT OUTER JOIN [Person].[EmailAddress] ea + ON ea.[BusinessEntityID] = p.[BusinessEntityID] + LEFT OUTER JOIN [Person].[PersonPhone] pp + ON pp.[BusinessEntityID] = p.[BusinessEntityID] + LEFT OUTER JOIN [Person].[PhoneNumberType] pnt + ON pnt.[PhoneNumberTypeID] = pp.[PhoneNumberTypeID]; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/views/Sales.vSalesPersonSalesByFiscalYears.sql b/snapshots/AdventureWorks2017/_sql-database/views/Sales.vSalesPersonSalesByFiscalYears.sql new file mode 100644 index 0000000..333896f --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/views/Sales.vSalesPersonSalesByFiscalYears.sql @@ -0,0 +1,37 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[vSalesPersonSalesByFiscalYears]') AND type = 'V') +DROP VIEW [Sales].[vSalesPersonSalesByFiscalYears] +GO + +CREATE VIEW [Sales].[vSalesPersonSalesByFiscalYears] +AS +SELECT + pvt.[SalesPersonID] + ,pvt.[FullName] + ,pvt.[JobTitle] + ,pvt.[SalesTerritory] + ,pvt.[2002] + ,pvt.[2003] + ,pvt.[2004] +FROM (SELECT + soh.[SalesPersonID] + ,p.[FirstName] + ' ' + COALESCE(p.[MiddleName], '') + ' ' + p.[LastName] AS [FullName] + ,e.[JobTitle] + ,st.[Name] AS [SalesTerritory] + ,soh.[SubTotal] + ,YEAR(DATEADD(m, 6, soh.[OrderDate])) AS [FiscalYear] + FROM [Sales].[SalesPerson] sp + INNER JOIN [Sales].[SalesOrderHeader] soh + ON sp.[BusinessEntityID] = soh.[SalesPersonID] + INNER JOIN [Sales].[SalesTerritory] st + ON sp.[TerritoryID] = st.[TerritoryID] + INNER JOIN [HumanResources].[Employee] e + ON soh.[SalesPersonID] = e.[BusinessEntityID] + INNER JOIN [Person].[Person] p + ON p.[BusinessEntityID] = sp.[BusinessEntityID] + ) AS soh +PIVOT +( + SUM([SubTotal]) + FOR [FiscalYear] + IN ([2002], [2003], [2004]) +) AS pvt; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/views/Sales.vStoreWithAddresses.sql b/snapshots/AdventureWorks2017/_sql-database/views/Sales.vStoreWithAddresses.sql new file mode 100644 index 0000000..6f56ad5 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/views/Sales.vStoreWithAddresses.sql @@ -0,0 +1,26 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[vStoreWithAddresses]') AND type = 'V') +DROP VIEW [Sales].[vStoreWithAddresses] +GO + +CREATE VIEW [Sales].[vStoreWithAddresses] AS +SELECT + s.[BusinessEntityID] + ,s.[Name] + ,at.[Name] AS [AddressType] + ,a.[AddressLine1] + ,a.[AddressLine2] + ,a.[City] + ,sp.[Name] AS [StateProvinceName] + ,a.[PostalCode] + ,cr.[Name] AS [CountryRegionName] +FROM [Sales].[Store] s + INNER JOIN [Person].[BusinessEntityAddress] bea + ON bea.[BusinessEntityID] = s.[BusinessEntityID] + INNER JOIN [Person].[Address] a + ON a.[AddressID] = bea.[AddressID] + INNER JOIN [Person].[StateProvince] sp + ON sp.[StateProvinceID] = a.[StateProvinceID] + INNER JOIN [Person].[CountryRegion] cr + ON cr.[CountryRegionCode] = sp.[CountryRegionCode] + INNER JOIN [Person].[AddressType] at + ON at.[AddressTypeID] = bea.[AddressTypeID]; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/views/Sales.vStoreWithContacts.sql b/snapshots/AdventureWorks2017/_sql-database/views/Sales.vStoreWithContacts.sql new file mode 100644 index 0000000..2fd49cb --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/views/Sales.vStoreWithContacts.sql @@ -0,0 +1,31 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[vStoreWithContacts]') AND type = 'V') +DROP VIEW [Sales].[vStoreWithContacts] +GO + +CREATE VIEW [Sales].[vStoreWithContacts] AS +SELECT + s.[BusinessEntityID] + ,s.[Name] + ,ct.[Name] AS [ContactType] + ,p.[Title] + ,p.[FirstName] + ,p.[MiddleName] + ,p.[LastName] + ,p.[Suffix] + ,pp.[PhoneNumber] + ,pnt.[Name] AS [PhoneNumberType] + ,ea.[EmailAddress] + ,p.[EmailPromotion] +FROM [Sales].[Store] s + INNER JOIN [Person].[BusinessEntityContact] bec + ON bec.[BusinessEntityID] = s.[BusinessEntityID] + INNER JOIN [Person].[ContactType] ct + ON ct.[ContactTypeID] = bec.[ContactTypeID] + INNER JOIN [Person].[Person] p + ON p.[BusinessEntityID] = bec.[PersonID] + LEFT OUTER JOIN [Person].[EmailAddress] ea + ON ea.[BusinessEntityID] = p.[BusinessEntityID] + LEFT OUTER JOIN [Person].[PersonPhone] pp + ON pp.[BusinessEntityID] = p.[BusinessEntityID] + LEFT OUTER JOIN [Person].[PhoneNumberType] pnt + ON pnt.[PhoneNumberTypeID] = pp.[PhoneNumberTypeID]; \ No newline at end of file diff --git a/snapshots/AdventureWorks2017/_sql-database/views/Sales.vStoreWithDemographics.sql b/snapshots/AdventureWorks2017/_sql-database/views/Sales.vStoreWithDemographics.sql new file mode 100644 index 0000000..28b7ec2 --- /dev/null +++ b/snapshots/AdventureWorks2017/_sql-database/views/Sales.vStoreWithDemographics.sql @@ -0,0 +1,29 @@ +IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[Sales].[vStoreWithDemographics]') AND type = 'V') +DROP VIEW [Sales].[vStoreWithDemographics] +GO + +CREATE VIEW [Sales].[vStoreWithDemographics] AS +SELECT + s.[BusinessEntityID] + ,s.[Name] + ,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey"; + (/StoreSurvey/AnnualSales)[1]', 'money') AS [AnnualSales] + ,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey"; + (/StoreSurvey/AnnualRevenue)[1]', 'money') AS [AnnualRevenue] + ,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey"; + (/StoreSurvey/BankName)[1]', 'nvarchar(50)') AS [BankName] + ,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey"; + (/StoreSurvey/BusinessType)[1]', 'nvarchar(5)') AS [BusinessType] + ,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey"; + (/StoreSurvey/YearOpened)[1]', 'integer') AS [YearOpened] + ,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey"; + (/StoreSurvey/Specialty)[1]', 'nvarchar(50)') AS [Specialty] + ,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey"; + (/StoreSurvey/SquareFeet)[1]', 'integer') AS [SquareFeet] + ,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey"; + (/StoreSurvey/Brands)[1]', 'nvarchar(30)') AS [Brands] + ,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey"; + (/StoreSurvey/Internet)[1]', 'nvarchar(30)') AS [Internet] + ,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey"; + (/StoreSurvey/NumberEmployees)[1]', 'integer') AS [NumberEmployees] +FROM [Sales].[Store] s; \ No newline at end of file diff --git a/src/queries/mssql.ts b/src/queries/mssql.ts index 6d28f8b..3224559 100644 --- a/src/queries/mssql.ts +++ b/src/queries/mssql.ts @@ -62,6 +62,8 @@ export const columnsRead = ` c.is_identity = 1 AND c.object_id = ic.object_id AND c.column_id = ic.column_id + ORDER BY + c.object_id, c.column_id `; /** @@ -116,6 +118,8 @@ export const foreignKeysRead = ` JOIN sys.foreign_keys fk ON fk.object_id = k.constraint_object_id JOIN sys.objects ro ON ro.object_id = fk.referenced_object_id JOIN sys.objects po ON po.object_id = fk.parent_object_id + ORDER BY + po.object_id, k.constraint_object_id `; /** @@ -144,8 +148,8 @@ export const indexesRead = ` ORDER BY ro.schema_id, ro.name, - ic.key_ordinal, - c.object_id + i.name, + ic.key_ordinal `; /**