; Encrypt=True;
-
-8. Choose how the data source connects to the SQL Database instance. You can use either of the following two authentication types:
- * **Prompt for credentials** to prompt users to provide a user name and password when they run the report. Optionally, update the default prompt text: **Type the user name and password to use in order to access the data source:**.
- * **Credentials stored securely in the report server** to provide a user name and a password that is stored on the report server, separately from the report.
-9. Click **OK**.
-
-
-
-Edit a shared data source
-1. Open the SQL Reporting server on which you want to edit a shared data source.
-
-2. Navigate to the folder that contains the data source.
-3. In the **Data Source** list, click the data source, click the down arrow to the right of the data source name, and then click **Properties**.
-
- ![EditDataSource][]
-
-4. The **Edit Data Source** dialog box opens.
-5. Edit options.
-
-6. Optionally, click **Test Connection** to verify that the updated connection works.
-7. Click **OK**.
-
-
-Create a folder
-1. Navigate to the folder in which you want to create a new folder.
-2. Breadcrumbs provide a visual presentation of the path from the root folder to the current folder.
-
- ![CreateFolderOption][]
-
-3. Click **Create** in the **Folder** category on the ribbon.
-
- ![CreateFolderOption][]
-
-4. In **Name**, type the folder name.
-5. Optionally, in **Description**, type a description.
-
-6. The description is included in the folder entry in the folder list.
-7. Click **OK**.
-
-8. By default, a folder inherits the role assignments of its parent folder. After you create the folder, you can update its role assignments. For more information, see [How to: Update Permissions on Report Server Item (Windows Azure SQL Reporting)][].
-
-
-
-Edit properties of a folder
-1. Open the SQL Reporting server on which you want to update folder properties.
-
-2. If the folder is not in the root of the report server, navigate to the folder that contains the folder that you want.
-
- _To reverse the navigation, click the breadcrumbs at the bottom of the Server Home area of the portal. The server name, a 10 character identifier such as 8wr5mkxw8i, represents the root folder of the server. It is always the first bread crumb._
-
- ![ServerHomePath][]
-
-3. In the Folder list, click the folder, click the down arrow to the right of the folder name, and then click Properties.
-
- ![FolderProperties][]
-
-4. The Edit Folder dialog box opens.
-5. Update the name and description and click OK.
-
-
-Update permissions on a Report item
-1. To update permissions on a report item, Click the row that contains the report items, click the down arrow to the right of the folder, and then click Permissions. The Manage Permissions dialog box opens.
-
- ![FolderProperties][]
-
- To update permissions of a Folder, you can optionally click Permissions in the Folder category of the portal ribbon.
-
- ![Permissions][]
-
- Roles assignments of an item are automatically inherited from the folder that contains the item.
-
- By default, the root folder has the permissions granted to the report server administrator. When you update permissions on a folder, permissions on its child folders are updated as well.
-
- _Because the root folder has no physical folder for you to select, you can set permissions on the root folder of the server only by clicking Permissions in the Folder category on the toolbar._
-
-2. Optionally, locate users by typing in the box next to the search icon or filter by role by selecting a role in the role list that is located to the right of the box.
-3. Click the user for whom you want to update role assignments on the selected folder.
-
- _The user list includes the report server administrator. This user is grayed out and you cannot change its item roles. The administrator is automatically assigned the Content Manager and System Administrator roles when it is first created. These roles provide the highest permissions and you cannot lessen the administrator’s permissions by assigning item roles with lower permissions._
-4. Select and clear role assignments.
-
-5. Click **OK**.
-
-Next Steps
-
-Now that you've learned the basics of SQL Reporting administration, to learn more about SQL Reporting and usage, see [Windows Azure SQL Reporting][] on MSDN.
-
-
-[Create a report server]: #CreateRSS
-[Create a user and assign roles]: #CreateUser
-[Upload a report]: #Upload
-[Download a report]: #DownloadReport
-[Run a report : from report server]: #RunReportRS
-[Run a report : from SQL Reporting Management Portal]: #RunReportRMP
-[Create a data source]: #CreateDS
-[Edit a shared data source]: #EditDS
-[Create a folder]: #CreateFolder
-[Edit properties of a folder]: #EditPropFolder
-[Update permissions on a Report item]: #UpdatePerm
-[Next Steps]: #NextSteps
-
-
-[Windows Azure SQL Reporting]: http://msdn.microsoft.com/en-us/library/windowsazure/gg430130
-
-[SQL Database TechNet WIKI]: http://social.technet.microsoft.com/wiki/contents/articles/2267.sql-azure-technet-wiki-articles-index-en-us.aspx
-
-[Windows Azure Offers]: http://www.windowsazure.com/en-us/
-
-[How to: Update Permissions on Report Server Item (Windows Azure SQL Reporting)]: http://msdn.microsoft.com/en-us/library/windowsazure/hh403965.aspx
-
-[Finding and Viewing Reports with a Browser (Report Builder and SSRS)]: http://technet.microsoft.com/library/dd255286.aspx
-
-[How to: Update Permissions on Report Server Item (Windows Azure SQL Reporting)]: http://msdn.microsoft.com/en-us/library/windowsazure/hh403965.aspx
-
-[Permissions]: ../media/Permissions_button.png
-[FolderProperties]: ../media/FolderProperties.png
-[CreateFolderOption]: ../media/CreateFolder_button.png
-[ServerHomePath]: ../media/ServerHome_path.png
-[EditDataSource]: ../media/EditDS.png
-[CreateDataSourceDialog]: ../media/CreateDS_dialog.png
-[CreateDataSourceOption]: ../media/CreateDS_button.png
-[ReportServer]: ../media/ReportServer_page.png
-[ServerHome]: ../media/ServerHome.png
-[UploadReportDialog]: ../media/UploadReport_dialog.png
-[UploadReportOption]: ../media/UploadItem_button.png
-[CreateUserCred]: ../media/CreateUser_Credentials.png
-[ManageUserDialog]: ../media/ManagerUser_dialog.png
-[ManageUserOption]: ../media/ManageUser_button.png
-[CreateServerCred]: ../media/CreateServer_Credentials.png
-[CreateServerDialog]: ../media/CreateServer_dialog.png
-[CreateServerOption]: ../media/CreateServer_button.png
diff --git a/ITPro/Services/other/manage-acs-namespace.md b/ITPro/Services/other/manage-acs-namespace.md
deleted file mode 100644
index 3a609e75a1c..00000000000
--- a/ITPro/Services/other/manage-acs-namespace.md
+++ /dev/null
@@ -1,437 +0,0 @@
-
-# Managing Your ACS Namespace #
-
-This topic outlines management tasks that it is recommended you perform regularly so that your applications that use the Windows Azure Acccess Control Service (ACS) continue to function properly and without interruptions. These management tasks are as follows:
-
-
-1. Important: track expiry and carry out rollover for certificates, keys and passwords used by the ACS namespace, relying party applications, service identities, identity providers, and the ACS Management Service account. See Certificates and Key Management Guidelines below for more information.
-
-2. Review your identity providers, service identities, rules, and portal administrators and remove the outdated ones.
-
-For more information about ACS, see [Access Control Service 2.0](http://msdn.microsoft.com/en-us/library/gg429786.aspx).
-
-
-
-## Certificates and Keys Management Guidelines ##
-
-For security reasons, certificates and keys that are used in ACS are guaranteed to expire. It is important to keep track of the expiration dates so these certificates and keys can be renewed.
-
-The high-level steps for rolling over a token signing (symmetric key or X.509 certificate) or token decryption certificate are:
-
-1. Configure the new certificate or key in ACS as a “secondary” key, alongside the existing certificate or key that will expire.
-2. Notify the partners that use the service that they need to update their corresponding keys before a certain deadline.
-3. Partners should update the corresponding certificate or key for their relying parties or identity providers. For example, import the updated WS-Federation metadata for the ACS namespace that contains the new token signature validation certificate, or manually configure the symmetric key in the application config.
-4. After all applications have been updated (or after a deadline has elapsed), mark the new certificate or key as primary in the ACS configuration.
-5. After a reasonable grace period, remove the old certificate or key from the ACS configuration.
-
-The high-level steps for rolling over token encryption certifcates are:
-
-1. You (or your partners) update the corresponding certificate or key that is used for token decryption in the relying party applications.
-2. Configure the new encryption certificate in ACS, alongside the existing certificate that will expire.
-3. Remove the old encryption certificate.
-
-The high-level steps for rolling over service identity or management service keys:
-
-1. Configure the new certificate or key in ACS, alongside the existing certificate or key that will expire.
-2. You (or your partners) update the corresponding certificate or key that is used for token requests in the client applications.
-3. After all clients have been updated (or after a reasonable grace period), remove the old certificate or key.
-
-
-
-When a certificate or a key expires, ACS will fail issuing tokens preventing your relying party from operating normally. Expired certificates and keys will be ignored by ACS, effectively causing exceptions as if no certificate or key was configured in first place. In the following sections you will find information for each certificate and key managed by ACS, how to renew it and how to recognize if it is expired and needs to be renewed.
-
-- Use the Certificates and Keys section in the ACS Management Portal to manage certificates and keys related to service namespace and relying party applications. For more information about these credential types, see [Certificates and Keys](http://msdn.microsoft.com/en-us/library/gg185932.aspx).
-- Use the Service identities section in the ACS Management Portal to manage credentials (certificates, keys or passwords) related to service identities. For more information about service identities, see [Service Identities](http://msdn.microsoft.com/en-us/library/gg185945.aspx).
-- Use the Management Service section in the ACS Management Portal to manage credentials (certificates, keys or passwords) related to the ACS Management Service accounts. For more information about the ACS Management Service, see [ACS Management Service](http://msdn.microsoft.com/en-us/library/gg185972.aspx).
-
-There are some certificate and key types that are not visible in the ACS management portal. Specifically for WS-Federation identity providers such as AD FS, you must proactively check the validity of the certificates that the identity providers use. Currently, certificates available through WS-Federation identity providers’ metadata are not visible on the ACS management portal. To verify the validity of the certificates you must use the management service to inspect the Effective and Expiration dates for the [IdentityProviderKey](http://msdn.microsoft.com/en-us/library/hh124084.aspx)’s StartDate and EndDate properties. When the certificate or a key expires, and therefore becomes invalid, ACS will start throwing exceptions [ACS Error Codes](http://msdn.microsoft.com/en-us/library/gg185949.aspx) specific to the certificate or key. Consult the sections below for specific error codes.
-
-You can update the certificates and keys programmatically using [ACS Management Service](http://msdn.microsoft.com/en-us/library/gg185972.aspx). Consider reviewing KeyManagement code sample available for download as part of the [Code Sample: Management Service](http://msdn.microsoft.com/en-us/library/gg185970.aspx).
-
-## Available certificates and keys ##
-
-The following list displays the available certificates and keys that are used in ACS and must be tracked for expiration dates:
-
-- Token signing certificates
-- Token signing keys
-- Token encryption certificates
-- Token decryption certificates
-- Service identity credentials
-- ACS Management Service account credentials
-- Identity provider signing and encryption certificates
-
-The rest of this topic covers each certificate and key in detail.
-
-## Token signing certificates ##
-
-ACS signs all security tokens it issues. X.509 certificates are used for signing when you build an application that consumes SAML tokens issued by ACS.
-
-You can manage token signing certificates via the Certificates and Key section of the ACS Management Portal.
-
-**To Manage token signing certificates**
-
-1. Open an Internet browser and visit the Windows Azure Management Portal ([http://go.microsoft.com/fwlink/?LinkID=129428](http://go.microsoft.com/fwlink/?LinkID=129428)).
-
-2. Log on to the website using a Windows Live ID. If you do not have a Windows Live ID, click Sign up to create one for yourself.
-
-3. After you are signed in with your Windows Live ID, you are redirected to the Management Portal page. On the lower-left-hand side of this page, click **Service Bus and Access Control**.
-
- ![][ACS1]
-
-4. To launch the ACS Management Portal, click **Access Control** in the tree on the left-hand side, select the ACS service namespace that you want to configure, and then click the **Access Control Service** button from the toolbar at the top of the page.
-
- ![][ACS2]
-
- At this point your screen should look like this:
-
- ![][ACS3]
-
-5. Click **Certificates and Keys** in the tree on the left-hand side under the Service Settings section.
-
- ![][ACS4]
-
- At this point, your screen should look like this:
-
- ![][ACS5]
-
-6. Under the Token Signing section, use the Add button to configure the new certificate in ACS as a “secondary” key, alongside the existing certificate that will expire.
-
-7. Notify the partners that use the service that they need to update their corresponding keys before a certain deadline.
-
-8. Partners should update the corresponding certificate for their relying parties or identity providers. For example, import the updated WS-Federation metadata for the ACS namespace that contains the new token signature validation certificate, or manually configure the symmetric key in the application config.
-
-9. After all applications have been updated (or after a deadline has elapsed), mark the new certificate as primary in the ACS configuration.
-
-10. After a reasonable grace period, use the Delete button under the Token Signing section of the Certificates and Keys page to remove the old certificate from the ACS configuration.
-
-
-For more information, see [Certificates and Keys](http://msdn.microsoft.com/en-us/library/gg185932.aspx).
-
-When signing certificates expire you will receive the following errors when trying to request a token:
-
-Error Code |
-Message |
-Action required to fix the message |
-
-
-ACS50004 |
-No primary X.509 signing certificate is configured. A signing certificate is required for SAML. |
-If the chosen relying party uses SAML as its token type, ensure that a valid X.509 certificate is configured for the relying party or the service namespace. The certificate must be set to primary and must be within its validity period. |
-
-
-## Token signing key ##
-
-ACS signs all security tokens it issues. 256-bit symmetric signing keys are used when you build an application that consumes SWT tokens issued by ACS.
-
-You can manage token signing keys via the Certificates and Key section of the ACS Management Portal.
-
-**To manage token signing key**
-
-1. Open an Internet browser and visit the Windows Azure Management Portal ([http://go.microsoft.com/fwlink/?LinkID=129428](http://go.microsoft.com/fwlink/?LinkID=129428)).
-
-2. Log on to the website using a Windows Live ID. If you do not have a Windows Live ID, click Sign up to create one for yourself.
-
-3. After you are signed in with your Windows Live ID, you are redirected to the Management Portal page. On the lower-left-hand side of this page, click **Service Bus and Access Control**.
-
- ![][ACS1]
-
-4. To launch the ACS Management Portal, click **Access Control** in the tree on the left-hand side, select the ACS service namespace that you want to configure, and then click the **Access Control Service** button from the toolbar at the top of the page.
-
- ![][ACS2]
-
- At this point your screen should look like this:
-
- ![][ACS3]
-
-5. Click **Certificates and Keys** in the tree on the left-hand side under the Service Settings section.
-
- ![][ACS4]
-
- At this point, your screen should look like this:
-
- ![][ACS5]
-
-6. Under the Token Signing section, use the Add button to configure the new key in ACS as a “secondary” key, alongside the existing key that will expire.
-
-7. Notify the partners that use the service that they need to update their corresponding keys before a certain deadline.
-
-8. Partners should update the corresponding key for their relying parties or identity providers. For example, import the updated WS-Federation metadata for the ACS namespace that contains the new token signature validation certificate, or manually configure the symmetric key in the application config.
-
-9. After all applications have been updated (or after a deadline has elapsed), mark the new key as primary in the ACS configuration.
-
-10. After a reasonable grace period, use the Delete button under the Token Signing section of the Certificates and Keys page to remove the old key from the ACS configuration.
-
-For more information, see [Certificates and Keys](http://msdn.microsoft.com/en-us/library/gg185932.aspx).
-
-When signing keys expire you will receive the following errors when trying to request a token:
-
-Error Code |
-Message |
-Action required to fix the message |
-
-
-ACS50003 |
-No primary symmetric signing key is configured. A symmetric signing key is required for SWT. |
-If the chosen relying party uses SWT as its token type, ensure that a symmetric key is configured for the relying party or the service namespace, and that the key is set to primary and within its validity period. |
-
-
-## Token encryption certificates ##
-
-Token encryption is required if a relying party application is a web service using proof-of-possession tokens over the WS-Trust protocol, in other cases token encryption is optional.
-
-You can manage token encryption certificates via the Certificates and Key section of the ACS Management Portal.
-
-**To manage token encryption certificates**
-
-1. Open an Internet browser and visit the Windows Azure Management Portal ([http://go.microsoft.com/fwlink/?LinkID=129428](http://go.microsoft.com/fwlink/?LinkID=129428)).
-
-2. Log on to the website using a Windows Live ID. If you do not have a Windows Live ID, click Sign up to create one for yourself.
-
-3. After you are signed in with your Windows Live ID, you are redirected to the Management Portal page. On the lower-left-hand side of this page, click **Service Bus and Access Control**.
-
- ![][ACS1]
-
-4. To launch the ACS Management Portal, click **Access Control** in the tree on the left-hand side, select the ACS service namespace that you want to configure, and then click the **Access Control Service** button from the toolbar at the top of the page.
-
- ![][ACS2]
-
- At this point your screen should look like this:
-
- ![][ACS3]
-
-5. Click **Certificates and Keys** in the tree on the left-hand side under the Service Settings section.
-
- ![][ACS4]
-
- At this point, your screen should look like this:
-
- ![][ACS7]
-
-6. You (or your partners) update the corresponding certificate or key that is used for token decryption in the relying party applications
-7. Use the Add button to configure the new encryption certificate in ACS, alongside the existing certificate that will expire.
-8. Use the Delete to remove the old encryption certificate.
-
-
-
-For more information, see [Certificates and Keys](http://msdn.microsoft.com/en-us/library/gg185932.aspx).
-
-When encryption certificates expire you will receive the following errors when trying to request a token:
-
-Error Code |
-Message |
-Action required to fix the message |
-
-
-ACS50005 |
-Token encryption is required but no encrypting certificate is configured for the relying party. |
-Either disable token encryption for the chosen relying party or upload an X.509 certificate to be used for token encryption. |
-
-
-## Token decryption certificates ##
-
-ACS can accept encrypted tokens from WS-Federation identity providers (for example, AD FS 2.0). An X.509 certificate hosted in ACS is used for decryption.
-
-You can manage token decryption certificates via the Certificates and Key section of the ACS Management Portal.
-
-**To manage token decryption certificates**
-
-1. Open an Internet browser and visit the Windows Azure Management Portal ([http://go.microsoft.com/fwlink/?LinkID=129428](http://go.microsoft.com/fwlink/?LinkID=129428)).
-
-2. Log on to the website using a Windows Live ID. If you do not have a Windows Live ID, click Sign up to create one for yourself.
-
-3. After you are signed in with your Windows Live ID, you are redirected to the Management Portal page. On the lower-left-hand side of this page, click **Service Bus and Access Control**.
-
- ![][ACS1]
-
-4. To launch the ACS Management Portal, click **Access Control** in the tree on the left-hand side, select the ACS service namespace that you want to configure, and then click the **Access Control Service** button from the toolbar at the top of the page.
-
- ![][ACS2]
-
- At this point your screen should look like this:
-
- ![][ACS3]
-
-5. Click **Certificates and Keys** in the tree on the left-hand side under the Service Settings section.
-
- ![][ACS4]
-
- At this point, your screen should look like this:
-
- ![][ACS9]
-
-6. Under the Token decryption section, use the Add bu tton to configure the new certificate in ACS as a “secondary” key, alongside the existing certificate that will expire.
-
-7. Notify the partners that use the service that they need to update their corresponding keys before a certain deadline.
-
-8. Partners should update the corresponding certificate for their relying parties or identity providers. For example, import the updated WS-Federation metadata for the ACS namespace that contains the new token signature validation certificate, or manually configure the symmetric key in the application config.
-
-9. After all applications have been updated (or after a deadline has elapsed), mark the new certificate as primary in the ACS configuration.
-
-10. After a reasonable grace period, use the Delete button under the Token Signing section of the Certificates and Keys page to remove the old certificate from the ACS configuration.
-
-For more information, see [Certificates and Keys](http://msdn.microsoft.com/en-us/library/gg185932.aspx).
-
-When decryption certificates expire you will receive the following errors when trying to request a token:
-
-Error Code |
-Message |
-
-
-ACS10001 |
-An error occurred while processing the SOAP header. |
-
-ACS20001 |
-An error occurred while processing a WS-Federation sign-in response. |
-
-
-## Service identity credentials ##
-
-Service identities are credentials that are configured globally for the ACS namespace that allow applications or clients to authenticate directly with ACS and receive a token. There are three credential types that an ACS service identity can be associated with Symmetric key, Password, and X.509 certificate.
-
-You can manage service identity credentials via the Service identities page of the ACS Management Portal.
-
-**To manage service identity credentials**
-
-1. Open an Internet browser and visit the Windows Azure Management Portal ([http://go.microsoft.com/fwlink/?LinkID=129428](http://go.microsoft.com/fwlink/?LinkID=129428)).
-
-2. Log on to the website using a Windows Live ID. If you do not have a Windows Live ID, click Sign up to create one for yourself.
-
-3. After you are signed in with your Windows Live ID, you are redirected to the Management Portal page. On the lower-left-hand side of this page, click **Service Bus and Access Control**.
-
- ![][ACS1]
-
-4. To launch the ACS Management Portal, click **Access Control** in the tree on the left-hand side, select the ACS service namespace that you want to configure, and then click the **Access Control Service** button from the toolbar at the top of the page.
-
- ![][ACS2]
-
- At this point your screen should look like this:
-
- ![][ACS3]
-
-5. Click **Service identities** in the tree on the left-hand side under the Service Settings section.
-
- ![][ACS11]
-
-6. Click the service identity which you want to edit.
-
- ![][ACS112]
-
-7. In the Credentials section, use the Add button to configure the new certificate or key in ACS, alongside the existing certificate or key that will expire.
-
-8. You (or your partners) update the corresponding certificate or key that is used for token requests in the client applications.
-
-9. After all clients have been updated (or after a reasonable grace period), use the Delete button to remove the old certificate or key.
-
-
-For more information, see [Service Identities](http://msdn.microsoft.com/en-us/library/gg185945.aspx).
-
-Following are the exception that ACS will throw if the credentials are expired:
-
-Credential> | Error Code |
-Message | Action required to fix the message |
-
-
-Symmetric key, Password |
-ACS50006 |
-Signature verification failed. (There may be more details in the message.) |
- |
-
-X.509 Certificate |
-ACS50016 |
-X509Certificate with subject '<Certificate subject name>' and thumbprint '<Certificate thumbprint>' does not match any configured certificate. |
-Ensure that the requested certificate has been uploaded to ACS. |
-
-
-
-To verify and update expiration dates of symmetric keys or password, or to upload new certificate as service identity credentials follow instructions outlined in [How To: Add Service Identities with an X.509 Certificate, Password, or Symmetric Key](http://msdn.microsoft.com/en-us/library/gg185924.aspx). List of service identity credentials available in the Edit Service Identity page.
-
-## Management Service Credentials ##
-
-The ACS Management Service is a key component of ACS that allows you to programmatically manage and configure settings in an ACS namespace. There are three credential types that the ACS Management service account can be associated with. These are symmetric key, password, and an X.509 certificate.
-
-You can manage the management service credentials via the Management service page of the ACS Management Portal.
-
-**To manage the ACS Management Service credentials**
-
-1. Open an Internet browser and visit the Windows Azure Management Portal ([http://go.microsoft.com/fwlink/?LinkID=129428](http://go.microsoft.com/fwlink/?LinkID=129428)).
-
-2. Log on to the website using a Windows Live ID. If you do not have a Windows Live ID, click Sign up to create one for yourself.
-
-3. After you are signed in with your Windows Live ID, you are redirected to the Management Portal page. On the lower-left-hand side of this page, click **Service Bus and Access Control**.
-
- ![][ACS1]
-
-4. To launch the ACS Management Portal, click **Access Control** in the tree on the left-hand side, select the ACS service namespace that you want to configure, and then click the **Access Control Service** button from the toolbar at the top of the page.
-
- ![][ACS2]
-
- At this point your screen should look like this:
-
- ![][ACS3]
-
-5. Click **Management service** in the tree on the left-hand side under the Administration section.
-
- ![][ACS14]
-
-6. Click the management service account.
-
- ![][ACS15]
-
-7. In the Credentials section, use the Add button to configure the new certificate or key in ACS, alongside the existing certificate or key that will expire.
-
-8. You (or your partners) update the corresponding certificate or key that is used for token requests in the client applications.
-
-9. After all clients have been updated (or after a reasonable grace period), use the delete button to remove the old certificate or key.
-
-
-For more information, see [ACS Management Service](http://msdn.microsoft.com/en-us/library/gg185972.aspx).
-
-ACS will throw out the following exceptions if these credentials are expired:
-
-Credential> | Error Code |
-Message | Action required to fix the message |
-
-
-Symmetric key, Password |
-ACS50006 |
-Signature verification failed. (There may be more details in the message.) |
- |
-
-X.509 Certificate |
-ACS50016 |
-X509Certificate with subject '<Certificate subject name>' and thumbprint '<Certificate thumbprint>' does not match any configured certificate. |
-Ensure that the requested certificate has been uploaded to ACS. |
-
-
-
-The List of the ACS Management Service account credentials is available on the Edit Management Service Account page in the ACS Management Portal.
-
-## WS-Federation identity provider certificate ##
-
-WS-Federation identity provider certificate is available through its metadata. When configuring WS-Federation identity provider, such as AD FS, the WS-Federation signing certificate is configured through WS-Federation metadata available via URL or as a file, read [WS-Federation Identity Providers](http://msdn.microsoft.com/en-us/library/gg185933.aspx) and [How To: Configure AD FS 2.0 as an Identity Provider](http://msdn.microsoft.com/en-us/library/gg185961.aspx) for more information. After the WS-Federation identity provider configured in ACS use ACS management service to query it for its certificates validness. Note that for each consecutive upload of the metadata via the ACS Management Portal or the ACS Management Service, the keys will be replaced.
-
-Following are the exceptions that ACS will throw if the certificate is expired:
-
-Error Code |
-Message |
-
-
-ACS10001 |
-An error occurred while processing the SOAP header. |
-
-ACS20001 |
-An error occurred while processing a WS-Federation sign-in response. |
-ACS50006 | Signature verification failed. (There may be more details in the message.) |
-
-
-[ACS1]:../Media/ACS1.png
-[ACS2]:../Media/ACS2.png
-[ACS3]:../Media/ACS3.png
-[ACS4]:../Media/ACS4.png
-[ACS5]:../Media/ACS5.png
-[ACS7]:../Media/ACS7.png
-[ACS9]:../Media/ACS9.png
-[ACS11]:../Media/ACS11.png
-[ACS112]:../Media/ACS112.png
-[ACS14]:../Media/ACS14.png
-[ACS15]:../Media/ACS15.png
diff --git a/ITPro/Services/sql-databases/Getting-Started-With-WASDB.md b/ITPro/Services/sql-databases/Getting-Started-With-WASDB.md
deleted file mode 100644
index 1f856b2cd8f..00000000000
--- a/ITPro/Services/sql-databases/Getting-Started-With-WASDB.md
+++ /dev/null
@@ -1,840 +0,0 @@
-#Getting Started with Windows Azure SQL Database
-
-In this tutorial you will learn the fundamentals of Windows Azure SQL Database administration using the Windows Azure (Preview) Management portal. If you are new to database administration, you can follow these lessons to learn essential skills in about 30 minutes.
-
-This tutorial does not assume prior experience with SQL Server or Windows Azure SQL Database. Upon completing this tutorial, you will have a sample database on Windows Azure and an understanding of how to perform basic administration tasks using the Management Portal.
-
-You will create and provision a sample database on Windows Azure and query system and user data using Excel and other applications.
-
-
-##Table of Contents##
-
-* [Step 1: Create a Windows Azure account](#Subscribe)
-* [Step 2: Connect to Windows Azure and create a database](#Subscribe)
-* [Step 3: Configure the firewall](#ConfigFirewall)
-* [Step 4: Add data and a schema using Transact-SQL script](#AddData)
-* [Step 5: Create the schema](#createschema)
-* [Step 6: Insert data](#insertData)
-* [Step 7: Query sample and system data in the Management Portal for SQL Database](#QueryDBSysData)
-* [Step 8: Create a database login and assign permissions](#DBLogin)
-* [Step 9: Connect from other applications](#ClientConnection)
-
-
-Step 1: Create a Windows Azure account
-
-1. Open a web browser, and browse to [http://www.windowsazure.com](http://www.windowsazure.com).
-To get started with a free account, click free trial in the upper right corner and follow the steps.
-
-2. Your account is now created. You are ready to get started.
-
-
-Step 2: Connect to Windows Azure and create a database
-
-
-1. Sign in to the [Management Portal](http://manage.windowsazure.com). You should see a navigation pane that looks like this.
-
- ![Image1] []
-
-2. Click **New** at the bottom of the page. When you click **New**, a list rolls up the screen showing things you can create.
-
-3. Click **SQL Database** and then click **Custom Create**.
-
- ![Image2] []
-
- Choosing this option lets you create a new server at the same time, with you as the administrator. As the system administrator, you can perform more tasks, including connecting to the Management Portal for SQL Database, which you will do later in this tutorial.
-
-4. The Database Settings page appears when you click **Custom Create**. In this page, you provide basic information that creates an empty database on the server. Adding tables and data will come in a later step.
-
- Fill out the Database Settings page as follows:
-
- ![Image3] []
-
-* Enter **School** for the database name.
-
-* Use the default settings for edition, max size, and collation.
-
-* Choose **New SQL Database Server**. Selecting a new server adds a second page that we'll use to set the administrator account and region.
-
-* When you are through, click the arrow to go to next page.
-
-
-7. Fill out the Server Settings as follows:
-
- ![Image4] []
-
-* Enter an administrator name as one word with no spaces. SQL Database uses SQL Authentication over an encrypted connection to validate user identity. A new SQL Server authentication login that has administrator permissions will be created using the name you provide. The administrator name cannot be a Windows user, nor should it be a Windows Live ID. Windows authentication is not supported on SQL Database.
-
-* Provide a strong password that is over eight characters, using a combination of upper and lower case values, and a number or symbol.
-
-* Choose a region. Region determines the geographical location of the server. Regions cannot be easily switched, so choose one that makes sense for this server. Choose a location that is closest to you. Keeping your Windows Azure application and database in the same region saves you on egress bandwidth cost and data latency.
-
-* Be sure to keep the **Allow Windows Azure Services to access this server** checkbox selected so that you can connect to this database using the Management Portal for SQL Database, Excel in Office 365, or Windows Azure SQL Reporting.
-
-* Click the checkmark at the bottom of the page when you are finished.
-
-Notice that you did not specify a server name. Because the SQL Database server must be accessible worldwide, SQL Database configures the appropriate DNS entries when the server is created. The generated name ensures that there are no name collisions with other DNS entries. You cannot change the name of your SQL Database server.
-
-In the next step, you will configure the firewall so that connections from applications running on your computer are allowed to access the databases on your SQL Database server.
-
-
-
-Step 3: Configure the firewall
-
-To configure the firewall so that connections are allowed through, you'll enter information on the server page.
-
-**Note:** The SQL Database service is only available with TCP port 1433 used by the TDS protocol, so make sure that the firewall on your network and local computer allows outgoing TCP communication on port 1433. For more information, see [SQL Database Firewall](http://social.technet.microsoft.com/wiki/contents/articles/2677.sql-azure-firewall-en-us.aspx).
-
-
-1. In the navigation pane on the left, click **SQL Databases**.
-
-2. Click **Servers** at the top of the page. Next, click on the server you just created so that you see a white arrow to the right. Click on the arrow to open the server page.
-
- ![Image5] []
-
-3. On the server page, click **Configure** to open the firewall configuration settings and specify the rule as follows:
-
- ![Image6] []
-
-* Copy the current client IP address. This is the IP address that your router or proxy server is listening on. SQL Database detects the IP address used by the current connection so that you can create a firewall rule to accept connection requests from this device.
-
-* Paste the IP address into both the beginning and end range. Later, if you encounter connection errors indicating that the range is too narrow, you can edit this rule to widen the range.
-
-* Enter a name for the firewall rule, such as the name of your computer or company.
-
-* Click the checkmark to save the rule.
-
- After you save the rule, your page will look similar to the following screenshot.
-
- ![Image7] []
-
-4. Click **Save** at the bottom of the page to complete the step. If you do not see **Save**, refresh the browser page.
-
-You now have a SQL Database server on Windows Azure, a firewall rule that enables access to the server, a database object, and an administrator login. But you still don't have a working database that you can query. To do that, your database must have a schema and actual data.
-
-Because this tutorial uses just the tools at hand, you'll use the query window in the Management Portal for SQL Database to run Transact-SQL script that builds a predefined database.
-
-As your skills increase, you will want to explore additional ways of creating a database, including programmatic approaches or the designer in SQL Server Data Tools. If you already have an existing SQL Server database that runs on a local server, you can easily migrate that database to the Windows Azure server that you just set up. Use the links at the end of this tutorial to find out how.
-
-
-
-Step 4: Add data and a schema using Transact-SQL script
-
-In this step, you run two scripts. The first one creates a schema that defines tables, columns, and relationships. The second script adds the data. Each step is performed independently on a separate connection. If you've built databases in SQL Server before, one of the differences you'll notice in SQL Database is that CREATE and INSERT commands must run in separate batches. SQL Database imposes this requirement to minimize attacks against the data while it is in transit.
-
-**Note:** The schema and data values are taken from this [MSDN article](http://msdn.microsoft.com/en-us/library/windowsazure/ee621790.aspx "MSDN article") and have been modified to work with SQL Database.
-
-1. Go to the home page. In the [Management Portal](http://manage.windowsazure.com), the **School** database appears in the list of items on the home page.
-
- ![Image8] []
-
-
-2. Click on **School** so that you see a white arrow to the right. Click on the arrow to open the database page.
-
- ![Image9] []
-
-3. Click **Manage** at the bottom of the page. If it is not visible, refresh the browser window. This will open the Management Portal for SQL Database. This portal is separate from the Windows Azure (Preview) Management Portal. You'll use this portal to run Transact-SQL commands and queries.
-
- ![Image10] []
-
-4. Enter the administrator login name and password. This is the administrator login that you specified when you created the server.
-
- ![Image11] []
-
-5. Click **New Query** in Management Portal for SQL Database. An empty query window opens in the workspace. In the next step, you will use this window to copy in a series of predefined scripts that will add structure and data to your empty database.
-
- ![Image12] []
-
-
-Step 5: Create the schema
-
-In this step, you will create the schema using the following script. The script first checks for an existing table of the same name to ensure there won't be a name collision, and creates the table using the [CREATE TABLE](http://msdn.microsoft.com/en-us/library/windowsazure/ee336258.aspx) statement. Further on, this script uses the [ALTER TABLE](http://msdn.microsoft.com/en-us/library/windowsazure/ee336286.aspx) statement to specify the primary key and table relationships.
-
-Copy the script and paste it into the query window. Click **Run** at the top of the window to execute the script.
-
-
- -- Create the Department table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[Department]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[Department](
- [DepartmentID] [int] NOT NULL,
- [Name] [nvarchar](50) NOT NULL,
- [Budget] [money] NOT NULL,
- [StartDate] [datetime] NOT NULL,
- [Administrator] [int] NULL,
- CONSTRAINT [PK_Department] PRIMARY KEY CLUSTERED
- (
- [DepartmentID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the Person table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[Person]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[Person](
- [PersonID] [int] IDENTITY(1,1) NOT NULL,
- [LastName] [nvarchar](50) NOT NULL,
- [FirstName] [nvarchar](50) NOT NULL,
- [HireDate] [datetime] NULL,
- [EnrollmentDate] [datetime] NULL,
- CONSTRAINT [PK_School.Student] PRIMARY KEY CLUSTERED
- (
- [PersonID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the OnsiteCourse table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[OnsiteCourse]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[OnsiteCourse](
- [CourseID] [int] NOT NULL,
- [Location] [nvarchar](50) NOT NULL,
- [Days] [nvarchar](50) NOT NULL,
- [Time] [smalldatetime] NOT NULL,
- CONSTRAINT [PK_OnsiteCourse] PRIMARY KEY CLUSTERED
- (
- [CourseID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the OnlineCourse table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[OnlineCourse]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[OnlineCourse](
- [CourseID] [int] NOT NULL,
- [URL] [nvarchar](100) NOT NULL,
- CONSTRAINT [PK_OnlineCourse] PRIMARY KEY CLUSTERED
- (
- [CourseID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- --Create the StudentGrade table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[StudentGrade]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[StudentGrade](
- [EnrollmentID] [int] IDENTITY(1,1) NOT NULL,
- [CourseID] [int] NOT NULL,
- [StudentID] [int] NOT NULL,
- [Grade] [decimal](3, 2) NULL,
- CONSTRAINT [PK_StudentGrade] PRIMARY KEY CLUSTERED
- (
- [EnrollmentID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the CourseInstructor table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[CourseInstructor]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[CourseInstructor](
- [CourseID] [int] NOT NULL,
- [PersonID] [int] NOT NULL,
- CONSTRAINT [PK_CourseInstructor] PRIMARY KEY CLUSTERED
- (
- [CourseID] ASC,
- [PersonID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the Course table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[Course]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[Course](
- [CourseID] [int] NOT NULL,
- [Title] [nvarchar](100) NOT NULL,
- [Credits] [int] NOT NULL,
- [DepartmentID] [int] NOT NULL,
- CONSTRAINT [PK_School.Course] PRIMARY KEY CLUSTERED
- (
- [CourseID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the OfficeAssignment table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[OfficeAssignment]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[OfficeAssignment](
- [InstructorID] [int] NOT NULL,
- [Location] [nvarchar](50) NOT NULL,
- [Timestamp] [timestamp] NOT NULL,
- CONSTRAINT [PK_OfficeAssignment] PRIMARY KEY CLUSTERED
- (
- [InstructorID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Define the relationship between OnsiteCourse and Course.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_OnsiteCourse_Course]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[OnsiteCourse]'))
- ALTER TABLE [dbo].[OnsiteCourse] WITH CHECK ADD
- CONSTRAINT [FK_OnsiteCourse_Course] FOREIGN KEY([CourseID])
- REFERENCES [dbo].[Course] ([CourseID]);
- GO
- ALTER TABLE [dbo].[OnsiteCourse] CHECK
- CONSTRAINT [FK_OnsiteCourse_Course];
- GO
-
- -- Define the relationship between OnlineCourse and Course.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_OnlineCourse_Course]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[OnlineCourse]'))
- ALTER TABLE [dbo].[OnlineCourse] WITH CHECK ADD
- CONSTRAINT [FK_OnlineCourse_Course] FOREIGN KEY([CourseID])
- REFERENCES [dbo].[Course] ([CourseID]);
- GO
- ALTER TABLE [dbo].[OnlineCourse] CHECK
- CONSTRAINT [FK_OnlineCourse_Course];
- GO
- -- Define the relationship between StudentGrade and Course.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_StudentGrade_Course]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[StudentGrade]'))
- ALTER TABLE [dbo].[StudentGrade] WITH CHECK ADD
- CONSTRAINT [FK_StudentGrade_Course] FOREIGN KEY([CourseID])
- REFERENCES [dbo].[Course] ([CourseID]);
- GO
- ALTER TABLE [dbo].[StudentGrade] CHECK
- CONSTRAINT [FK_StudentGrade_Course];
- GO
-
- --Define the relationship between StudentGrade and Student.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_StudentGrade_Student]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[StudentGrade]'))
- ALTER TABLE [dbo].[StudentGrade] WITH CHECK ADD
- CONSTRAINT [FK_StudentGrade_Student] FOREIGN KEY([StudentID])
- REFERENCES [dbo].[Person] ([PersonID]);
- GO
- ALTER TABLE [dbo].[StudentGrade] CHECK
- CONSTRAINT [FK_StudentGrade_Student];
- GO
-
- -- Define the relationship between CourseInstructor and Course.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_CourseInstructor_Course]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[CourseInstructor]'))
- ALTER TABLE [dbo].[CourseInstructor] WITH CHECK ADD
- CONSTRAINT [FK_CourseInstructor_Course] FOREIGN KEY([CourseID])
- REFERENCES [dbo].[Course] ([CourseID]);
- GO
- ALTER TABLE [dbo].[CourseInstructor] CHECK
- CONSTRAINT [FK_CourseInstructor_Course];
- GO
-
- -- Define the relationship between CourseInstructor and Person.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_CourseInstructor_Person]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[CourseInstructor]'))
- ALTER TABLE [dbo].[CourseInstructor] WITH CHECK ADD
- CONSTRAINT [FK_CourseInstructor_Person] FOREIGN KEY([PersonID])
- REFERENCES [dbo].[Person] ([PersonID]);
- GO
- ALTER TABLE [dbo].[CourseInstructor] CHECK
- CONSTRAINT [FK_CourseInstructor_Person];
- GO
-
- -- Define the relationship between Course and Department.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_Course_Department]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[Course]'))
- ALTER TABLE [dbo].[Course] WITH CHECK ADD
- CONSTRAINT [FK_Course_Department] FOREIGN KEY([DepartmentID])
- REFERENCES [dbo].[Department] ([DepartmentID]);
- GO
- ALTER TABLE [dbo].[Course] CHECK CONSTRAINT [FK_Course_Department];
- GO
-
- --Define the relationship between OfficeAssignment and Person.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_OfficeAssignment_Person]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[OfficeAssignment]'))
- ALTER TABLE [dbo].[OfficeAssignment] WITH CHECK ADD
- CONSTRAINT [FK_OfficeAssignment_Person] FOREIGN KEY([InstructorID])
- REFERENCES [dbo].[Person] ([PersonID]);
- GO
- ALTER TABLE [dbo].[OfficeAssignment] CHECK
- CONSTRAINT [FK_OfficeAssignment_Person];
- GO
-
-
-
-
-Step 6: Insert data
-
-Open a new query window and then paste in the following script. Run the script to insert data. This script uses the [INSERT](http://msdn.microsoft.com/en-us/library/windowsazure/ee336284.aspx) statement to add values to each column.
-
-
- -- Insert data into the Person table.
- SET IDENTITY_INSERT dbo.Person ON;
- GO
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (1, 'Abercrombie', 'Kim', '1995-03-11', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (2, 'Barzdukas', 'Gytis', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (3, 'Justice', 'Peggy', null, '2001-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (4, 'Fakhouri', 'Fadi', '2002-08-06', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (5, 'Harui', 'Roger', '1998-07-01', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (6, 'Li', 'Yan', null, '2002-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (7, 'Norman', 'Laura', null, '2003-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (8, 'Olivotto', 'Nino', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (9, 'Tang', 'Wayne', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (10, 'Alonso', 'Meredith', null, '2002-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (11, 'Lopez', 'Sophia', null, '2004-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (12, 'Browning', 'Meredith', null, '2000-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (13, 'Anand', 'Arturo', null, '2003-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (14, 'Walker', 'Alexandra', null, '2000-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (15, 'Powell', 'Carson', null, '2004-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (16, 'Jai', 'Damien', null, '2001-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (17, 'Carlson', 'Robyn', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (18, 'Zheng', 'Roger', '2004-02-12', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (19, 'Bryant', 'Carson', null, '2001-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (20, 'Suarez', 'Robyn', null, '2004-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (21, 'Holt', 'Roger', null, '2004-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (22, 'Alexander', 'Carson', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (23, 'Morgan', 'Isaiah', null, '2001-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (24, 'Martin', 'Randall', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (25, 'Kapoor', 'Candace', '2001-01-15', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (26, 'Rogers', 'Cody', null, '2002-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (27, 'Serrano', 'Stacy', '1999-06-01', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (28, 'White', 'Anthony', null, '2001-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (29, 'Griffin', 'Rachel', null, '2004-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (30, 'Shan', 'Alicia', null, '2003-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (31, 'Stewart', 'Jasmine', '1997-10-12', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (32, 'Xu', 'Kristen', '2001-7-23', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (33, 'Gao', 'Erica', null, '2003-01-30');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (34, 'Van Houten', 'Roger', '2000-12-07', null);
- GO
- SET IDENTITY_INSERT dbo.Person OFF;
- GO
- -- Insert data into the Department table.
- INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
- VALUES (1, 'Engineering', 350000.00, '2007-09-01', 2);
- INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
- VALUES (2, 'English', 120000.00, '2007-09-01', 6);
- INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
- VALUES (4, 'Economics', 200000.00, '2007-09-01', 4);
- INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
- VALUES (7, 'Mathematics', 250000.00, '2007-09-01', 3);
- GO
- -- Insert data into the Course table.
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (1050, 'Chemistry', 4, 1);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (1061, 'Physics', 4, 1);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (1045, 'Calculus', 4, 7);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (2030, 'Poetry', 2, 2);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (2021, 'Composition', 3, 2);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (2042, 'Literature', 4, 2);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (4022, 'Microeconomics', 3, 4);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (4041, 'Macroeconomics', 3, 4);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (4061, 'Quantitative', 2, 4);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (3141, 'Trigonometry', 4, 7);
- GO
- -- Insert data into the OnlineCourse table.
- INSERT INTO dbo.OnlineCourse (CourseID, URL)
- VALUES (2030, 'http://www.fineartschool.net/Poetry');
- INSERT INTO dbo.OnlineCourse (CourseID, URL)
- VALUES (2021, 'http://www.fineartschool.net/Composition');
- INSERT INTO dbo.OnlineCourse (CourseID, URL)
- VALUES (4041, 'http://www.fineartschool.net/Macroeconomics');
- INSERT INTO dbo.OnlineCourse (CourseID, URL)
- VALUES (3141, 'http://www.fineartschool.net/Trigonometry');
- --Insert data into OnsiteCourse table.
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (1050, '123 Smith', 'MTWH', '11:30');
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (1061, '234 Smith', 'TWHF', '13:15');
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (1045, '121 Smith','MWHF', '15:30');
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (4061, '22 Williams', 'TH', '11:15');
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (2042, '225 Adams', 'MTWH', '11:00');
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (4022, '23 Williams', 'MWF', '9:00');
- -- Insert data into the CourseInstructor table.
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (1050, 1);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (1061, 31);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (1045, 5);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (2030, 4);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (2021, 27);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (2042, 25);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (4022, 18);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (4041, 32);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (4061, 34);
- GO
- --Insert data into the OfficeAssignment table.
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (1, '17 Smith');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (4, '29 Adams');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (5, '37 Williams');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (18, '143 Smith');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (25, '57 Adams');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (27, '271 Williams');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (31, '131 Smith');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (32, '203 Williams');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (34, '213 Smith');
- -- Insert data into the StudentGrade table.
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2021, 2, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2030, 2, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2021, 3, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2030, 3, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2021, 6, 2.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2042, 6, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2021, 7, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2042, 7, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2021, 8, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2042, 8, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 9, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 10, null);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 11, 2.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 12, null);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4061, 12, null);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 14, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 13, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4061, 13, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 14, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 15, 2.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 16, 2);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 17, null);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 19, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4061, 20, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4061, 21, 2);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 22, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 22, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4061, 22, 2.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 23, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1045, 23, 1.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 24, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 25, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1050, 26, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 26, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 27, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1045, 28, 2.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1050, 28, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 29, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1050, 30, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 30, 4);
- GO
-
-
-
-Step 7: Query sample and system data in the Management Portal for SQL Database
-
-To check your work, run a query that returns the data you just entered. You can also run built-in stored procedures and data management views that provide information about the databases running on your SQL Database server.
-
-Query sample data
-
-In a new query window, copy and run the following Transact-SQL script to retrieve some of the data you just added.
-
-
-
- SELECT
- Course.Title as "Course Title"
- ,Department.Name as "Department"
- ,Person.LastName as "Instructor"
- ,OnsiteCourse.Location as "Location"
- ,OnsiteCourse.Days as "Days"
- ,OnsiteCourse.Time as "Time"
- FROM
- Course
- INNER JOIN Department
- ON Course.DepartmentID = Department.DepartmentID
- INNER JOIN CourseInstructor
- ON Course.CourseID = CourseInstructor.CourseID
- INNER JOIN Person
- ON CourseInstructor.PersonID = Person.PersonID
- INNER JOIN OnsiteCourse
- ON OnsiteCourse.CourseID = CourseInstructor.CourseID;
-
-
-You should see a result set that looks like the following illustration.
-
-![Image13] []
-
-
-Query system data
-
-You can also use system views and built-in stored procedures to get information from the server. For the purposes of this tutorial, you will try out just a few commands.
-
-Run the following command to find out which databases are available on the server.
-
- SELECT * FROM sys.databases
-
-Run this command to return a list of users currently connected to the server.
-
- SELECT user_name(),suser_sname()
-
-Run this stored procedure to return a list of all of the objects in the **School** database.
-
- EXEC SP_help
-
-Do not close the portal connection to the **School** database. You will need it again in a few minutes.
-
-
-
-Step 8: Create a database login and assign permissions
-
-In SQL Database, you can create logins and grant permissions using Transact-SQL. In this lesson, using Transact-SQL, you will do three things: create a SQL Server authentication login, create a database user, and grant permissions via role membership.
-
-A SQL Server authentication login is used for server connections. All users who access a database on a SQL Database server do so by providing a SQL Server authentication login name and password.
-
-To create a login, you must first connect to the **master** database.
-
-Create a SQL Server authentication login
-
-1. In the [Management Portal](http://manage.windowsazure.com), select **SQL Databases**, click **Servers**, choose the server and then click the white arrow to open the
-server page.
-
- ![Image5] []
-
-2. On the Quick Start page, click **Manage Server** to open a new connection to the Management Portal for SQL Database.
-
-3. Enter the administrator name and password. This is the administrator login that you specified when you created the server.
-
- ![Image20] []
-
-4. The SQL Database management portal opens in a new browser window. Click **Select a Database** at the top, and click **master**.
-
- ![Image14] []
-
-5. If you see an error on the page similar to the following, ignore it. Click **New Query** to open a query window that lets you execute Transact-SQL commands on the **master** database.
-
- ![Image15] []
-
-6. Copy and paste the following command into the query window.
-
- CREATE LOGIN SQLDBLogin WITH password='Password1';
-
-7. Run the command to create a new SQL Server login named 'SQLDBLogin'.
-
-
-Create a database user and assign permissions
-
-After you create a SQL Server authentication login, the next step is to assign the database and permission levels associated with the login. You do this by creating a **database user** on each database.
-
-1. Go back to the SQL Database management portal page that connects to the **School** database. If you closed the browser window, start a new connection to **School** database using the steps from the previous lesson, "Add data and a schema using Transact-SQL script".
-
- On the SQL Database management portal page, the **School** database name is visible in the top left corner.
-
- ![Image12] []
-
-2. Click **New Query** to open a new query window and copy in the following statement.
-
- CREATE USER SQLDBUser FROM LOGIN SQLDBLogin;
-
-3. Run the script. This script creates a new database user based on the login.
-
- Next, you'll assign permissions using the db_datareader role. Database users assigned to this role can read all data from all user tables in the database.
-
-4. Open a new query window and then enter and run the next statement. This statement runs a built-in stored procedure that assigns the db_datareader role to the new user you just created.
-
- EXEC sp_addrolemember 'db_datareader', 'SQLDBUser';
-
-You now have a new SQL Server authentication login that has read-only permission to the **School** database. Using these steps, you can create other SQL Server authentication logins to allow different levels of access to your data.
-
-
-
-
-Step 9: Connect from other applications
-
-Now that you have an operational database, you can connect to it from an Excel workbook.
-
-Connect from Excel
-
-
-If Excel 2010 is installed on your computer, you can use the following steps to connect to your sample database.
-
-1. In Excel, on the Data tab, click **From Other Sources**, and then click **From SQL Server**.
-
-2. In the Data Connection wizard, enter the fully-qualified domain name of your SQL Database server, followed by a SQL Server authentication login that has permission to access the database.
-
- The server name can be found on the Windows Azure management portal, on SQL Database, on Server page, on the Dashboard, in **Manage URL**. The server name consists of a series of letters and numbers, followed by '.database.windows.net'. Specify this name in the Database Connection wizard. Do not include the http:// or https:// prefix when specifying the name.
-
- Enter a SQL Server authentication login. For testing purposes, you can use the administrator login that you created when you set up the server. For regular data access, use a database user login similar to the one you just created.
-
- ![Image16] []
-
-3. On the next page, choose the **School** database, and then choose **Course**. Click **Finish**.
-
- ![Image17] []
-
-4. The Import Data dialog box appears that prompts you to select how and where to import your data. With the default options selected, click **OK**.
-
- ![Image19] []
-
-
-5. In the worksheet, you should see a table similar to the following.
-
- ![Image18] []
-
-Using just Excel, you can import only one table at a time. A better approach is to use the PowerPivot for Excel add-in, which lets you import and work with multiple tables as a single data set. Working with PowerPivot is beyond the scope of this tutorial, but you can get more information on this [Microsoft web site](http://www.microsoft.com/en-us/bi/powerpivot.aspx).
-
-
-Next steps
-
-Now that you are familiar with SQL Database and the management portals, you can try out other tools and techniques used by SQL Server database administrators.
-
-To actively manage your new database, consider installing and using SQL Server Management Studio. Management Studio is the primary database administration tool for managing SQL Server databases, including those running on Windows Azure. Using Management Studio, you can save queries for future use, add new tables and stored procedures, and hone your Transact-SQL skills in a rich scripting environment that includes a syntax checker, intellisense, and templates. To get started, follow the instructions in [Managing SQL Databases Using SQL Server Management Studio](http://www.windowsazure.com/en-us/develop/net/common-tasks/sql-azure-management/).
-
-Fluency in the Transact-SQL query and data definition language is essential for database administrators. If you are new to Transact-SQL, start with the [Tutorial: Writing Transact-SQL Statements](http://msdn.microsoft.com/en-us/library/ms365303.aspx) to learn some basic skills.
-
-There are other methods for moving an on-premise database to SQL Database. If you have existing databases, or if you downloaded sample databases to practice with, try the following alternative approaches:
-
-* [Migrating Databases to SQL Database](http://msdn.microsoft.com/en-us/library/windowsazure/ee730904.aspx)
-* [Copying Databases in SQL Database](http://msdn.microsoft.com/en-us/library/windowsazure/ff951624.aspx)
-* [How to Use SQL Database Programmatically](http://www.windowsazure.com/en-us/develop/net/how-to-guides/sql-azure/)
-
-
-
-
-[Image1]: ../media/1NavPaneDBSelected_SQLTut.png
-[Image2]: ../media/2MainPageCustomCreateDB_SQLTut.png
-[Image3]: ../media/3DatabaseSettings_SQLTut.PNG
-[Image4]: ../media/4ServerSettings_SQLTut.png
-[Image5]: ../media/5DBPortalDatabasesServers_SQLTut.PNG
-[Image6]: ../media/6DBConfigFirewall_SQLTut.png
-[Image7]: ../media/7DBConfigFirewallSAVE_SQLTut.png
-[Image8]: ../media/8MainPageHome_SQLTut.PNG
-[Image9]: ../media/9dblistschool_SQLTut.png
-[Image10]: ../media/10dbportalmanagebutton_SQLTut.png
-[Image11]: ../media/11ManageDatabaseLogin_SQLTut.png
-[Image12]: ../media/12DBPortalNewQuery_SQLTut.png
-[Image13]: ../media/13DBQueryResults_SQLTut.png
-[Image14]: ../media/14DBPortalConnectMaster_SQLTut.PNG
-[Image15]: ../media/15DBPortalConnectMasterErr_SQLTut.PNG
-[Image16]: ../media/16ExcelConnect_SQLTut.png
-[Image17]: ../media/17ExcelSelect_SQLTut.png
-[Image18]: ../media/18ExcelTable_SQLTut.png
-[Image19]: ../media/19ExcelImport_SQLTut.png
-[Image20]: ../media/11ManageDatabaseLogin_SQLTut.png
-
diff --git a/ITPro/Services/sql-databases/Getting-Started-With-WASDB_old.md b/ITPro/Services/sql-databases/Getting-Started-With-WASDB_old.md
deleted file mode 100644
index f62e49ca4fd..00000000000
--- a/ITPro/Services/sql-databases/Getting-Started-With-WASDB_old.md
+++ /dev/null
@@ -1,834 +0,0 @@
- Getting Started with Windows Azure SQL Database
-
-Learn the fundamentals of Windows Azure SQL Database administration using just the Windows Azure (Preview) Management portal and the instructions in this tutorial. If you are new to database administration, you can follow these lessons to learn essential skills in about 30 minutes.
-
-This tutorial does not assume prior experience with SQL Server or Windows Azure SQL Database. Upon completing this tutorial, you will have a sample database on Windows Azure and an understanding of how to perform basic administration tasks using the Management Portal.
-
-You will learn:
-
-* How to create a database and server using the portal.
-* How to add data to the database using script.
-* How to query sample and system data.
-* How to create a database login and assign permissions.
-* How to connect to the database from Excel.
-
-
-You will create and provision a sample database on Windows Azure and query system and user data using Excel and other applications.
-
-Create a Windows Azure Account
-
-1. Open a web browser, and browse to [http://www.windowsazure.com](http://www.windowsazure.com).
-To get started with a free account, click free trial in the upper right corner and follow the steps.
-
-2. Your account is now created. You are ready to get started.
-
-
-Connect to Windows Azure and create a database
-
-
-1. Connect to Windows Azure at [http://www.windowsazure.com](http://www.windowsazure.com) and sign in to the Management Portal. You should see a navigation pane that looks like this.
-
- ![Image1] []
-
-2. Click **New** at the bottom of the page. When you click **New**, a list rolls up the screen showing things you can create.
-
-3. Click **SQL Database** and then click **Custom Create**.
-
- ![Image2] []
-
- Choosing this option lets you create a new server at the same time, with you as the administrator. As the system administrator, you can perform more tasks, including connecting to the Management Portal for SQL Database, which you will do later in this tutorial.
-
-4. The Database Settings page appears when you click **Custom Create**. In this page, you provide basic information that creates an empty database on the server. Adding tables and data will come in a later step.
-
- Fill out the Database Settings page as follows:
-
- ![Image3] []
-
-* Enter **School** for the database name.
-
-* Use the default settings for edition, max size, and collation.
-
-* Choose **New SQL Database Server**. Selecting a new server adds a second page that we'll use to set the administrator account and region.
-
-* When you are through, click the arrow to go to next page.
-
-
-7. Fill out the Server Settings as follows:
-
- ![Image4] []
-
-* Enter an administrator name as one word with no spaces. SQL Database uses SQL Authentication over an encrypted connection to validate user identity. A new SQL Server authentication login that has administrator permissions will be created using the name you provide. The administrator name cannot be a Windows user, nor should it be a Windows Live ID. Windows authentication is not supported on SQL Database.
-
-* Provide a strong password that is over eight characters, using a combination of upper and lower case values, and a number or symbol.
-
-* Choose a region. Region determines the geographical location of the server. Regions cannot be easily switched, so choose one that makes sense for this server. Choose a location that is closest to you. Keeping your Windows Azure application and database in the same region saves you on egress bandwidth cost and data latency.
-
-* Be sure to keep the **Allow Windows Azure Services to access this server** checkbox selected so that you can connect to this database using the Management Portal for SQL Database, Excel in Office 365, or Windows Azure SQL Reporting.
-
-* Click the checkmark at the bottom of the page when you are finished.
-
-Notice that you did not specify a server name. Because the SQL Database server must be accessible worldwide, SQL Database configures the appropriate DNS entries when the server is created. The generated name ensures that there are no name collisions with other DNS entries. You cannot change the name of your SQL Database server.
-
-In the next step, you will configure the firewall so that connections from applications running on your computer are allowed to access the databases on your SQL Database server.
-
-
-
-Configure the firewall
-
-To configure the firewall so that connections are allowed through, you'll enter information on the server page.
-
-**Note:** The SQL Database service is only available with TCP port 1433 used by the TDS protocol, so make sure that the firewall on your network and local computer allows outgoing TCP communication on port 1433. For more information, see [SQL Database Firewall](http://social.technet.microsoft.com/wiki/contents/articles/2677.sql-azure-firewall-en-us.aspx).
-
-
-1. In the navigation pane on the left, click **SQL Databases**.
-
-2. Click **Servers** at the top of the page. Next, click on the server you just created so that you see a white arrow to the right. Click on the arrow to open the server page.
-
- ![Image5] []
-
-3. On the server page, click **Configure** to open the firewall configuration settings and specify the rule as follows:
-
- ![Image6] []
-
-* Copy the current client IP address. This is the IP address that your router or proxy server is listening on. SQL Database detects the IP address used by the current connection so that you can create a firewall rule to accept connection requests from this device.
-
-* Paste the IP address into both the beginning and end range. Later, if you encounter connection errors indicating that the range is too narrow, you can edit this rule to widen the range.
-
-* Enter a name for the firewall rule, such as the name of your computer or company.
-
-* Click the checkmark to save the rule.
-
- After you save the rule, your page will look similar to the following screenshot.
-
- ![Image7] []
-
-4. Click **Save** at the bottom of the page to complete the step. If you do not see **Save**, refresh the browser page.
-
-You now have a SQL Database server on Windows Azure, a firewall rule that enables access to the server, a database object, and an administrator login. But you still don't have a working database that you can query. To do that, your database must have a schema and actual data.
-
-Because this tutorial uses just the tools at hand, you'll use the query window in the Management Portal for SQL Database to run Transact-SQL script that builds a predefined database.
-
-As your skills increase, you will want to explore additional ways of creating a database, including programmatic approaches or the designer in SQL Server Data Tools. If you already have an existing SQL Server database that runs on a local server, you can easily migrate that database to the Windows Azure server that you just set up. Use the links at the end of this tutorial to find out how.
-
-
-
-Add data and a schema using Transact-SQL script
-
-In this step, you run two scripts. The first one creates a schema that defines tables, columns, and relationships. The second script adds the data. Each step is performed independently on a separate connection. If you've built databases in SQL Server before, one of the differences you'll notice in SQL Database is that CREATE and INSERT commands must run in separate batches. SQL Database imposes this requirement to minimize attacks against the data while it is in transit.
-
-**Note:** The schema and data values are taken from this [MSDN article](http://msdn.microsoft.com/en-us/library/windowsazure/ee621790.aspx "MSDN article") and have been modified to work with SQL Database.
-
-1. Go to the home page. In the Management Portal, the **School** database appears in the list of items on the home page.
-
- ![Image8] []
-
-
-2. Click on **School** so that you see a white arrow to the right. Click on the arrow to open the database page.
-
- ![Image9] []
-
-3. Click **Manage** at the bottom of the page. If it is not visible, refresh the browser window. This will open the Management Portal for SQL Database. This portal is separate from the Windows Azure (Preview) Management Portal. You'll use this portal to run Transact-SQL commands and queries.
-
- ![Image10] []
-
-4. Enter the administrator login name and password. This is the administrator login that you specified when you created the server.
-
- ![Image11] []
-
-5. Click **New Query** in Management Portal for SQL Database. An empty query window opens in the workspace. In the next step, you will use this window to copy in a series of predefined scripts that will add structure and data to your empty database.
-
- ![Image12] []
-
-
-Create the schema
-
-In this step, you will create the schema using the following script. The script first checks for an existing table of the same name to ensure there won't be a name collision, and creates the table using the [CREATE TABLE](http://msdn.microsoft.com/en-us/library/windowsazure/ee336258.aspx) statement. Further on, this script uses the [ALTER TABLE](http://msdn.microsoft.com/en-us/library/windowsazure/ee336286.aspx) statement to specify the primary key and table relationships.
-
-Copy the script and paste it into the query window. Click **Run** at the top of the window to execute the script.
-
-
- -- Create the Department table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[Department]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[Department](
- [DepartmentID] [int] NOT NULL,
- [Name] [nvarchar](50) NOT NULL,
- [Budget] [money] NOT NULL,
- [StartDate] [datetime] NOT NULL,
- [Administrator] [int] NULL,
- CONSTRAINT [PK_Department] PRIMARY KEY CLUSTERED
- (
- [DepartmentID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the Person table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[Person]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[Person](
- [PersonID] [int] IDENTITY(1,1) NOT NULL,
- [LastName] [nvarchar](50) NOT NULL,
- [FirstName] [nvarchar](50) NOT NULL,
- [HireDate] [datetime] NULL,
- [EnrollmentDate] [datetime] NULL,
- CONSTRAINT [PK_School.Student] PRIMARY KEY CLUSTERED
- (
- [PersonID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the OnsiteCourse table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[OnsiteCourse]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[OnsiteCourse](
- [CourseID] [int] NOT NULL,
- [Location] [nvarchar](50) NOT NULL,
- [Days] [nvarchar](50) NOT NULL,
- [Time] [smalldatetime] NOT NULL,
- CONSTRAINT [PK_OnsiteCourse] PRIMARY KEY CLUSTERED
- (
- [CourseID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the OnlineCourse table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[OnlineCourse]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[OnlineCourse](
- [CourseID] [int] NOT NULL,
- [URL] [nvarchar](100) NOT NULL,
- CONSTRAINT [PK_OnlineCourse] PRIMARY KEY CLUSTERED
- (
- [CourseID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- --Create the StudentGrade table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[StudentGrade]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[StudentGrade](
- [EnrollmentID] [int] IDENTITY(1,1) NOT NULL,
- [CourseID] [int] NOT NULL,
- [StudentID] [int] NOT NULL,
- [Grade] [decimal](3, 2) NULL,
- CONSTRAINT [PK_StudentGrade] PRIMARY KEY CLUSTERED
- (
- [EnrollmentID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the CourseInstructor table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[CourseInstructor]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[CourseInstructor](
- [CourseID] [int] NOT NULL,
- [PersonID] [int] NOT NULL,
- CONSTRAINT [PK_CourseInstructor] PRIMARY KEY CLUSTERED
- (
- [CourseID] ASC,
- [PersonID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the Course table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[Course]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[Course](
- [CourseID] [int] NOT NULL,
- [Title] [nvarchar](100) NOT NULL,
- [Credits] [int] NOT NULL,
- [DepartmentID] [int] NOT NULL,
- CONSTRAINT [PK_School.Course] PRIMARY KEY CLUSTERED
- (
- [CourseID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the OfficeAssignment table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[OfficeAssignment]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[OfficeAssignment](
- [InstructorID] [int] NOT NULL,
- [Location] [nvarchar](50) NOT NULL,
- [Timestamp] [timestamp] NOT NULL,
- CONSTRAINT [PK_OfficeAssignment] PRIMARY KEY CLUSTERED
- (
- [InstructorID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Define the relationship between OnsiteCourse and Course.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_OnsiteCourse_Course]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[OnsiteCourse]'))
- ALTER TABLE [dbo].[OnsiteCourse] WITH CHECK ADD
- CONSTRAINT [FK_OnsiteCourse_Course] FOREIGN KEY([CourseID])
- REFERENCES [dbo].[Course] ([CourseID]);
- GO
- ALTER TABLE [dbo].[OnsiteCourse] CHECK
- CONSTRAINT [FK_OnsiteCourse_Course];
- GO
-
- -- Define the relationship between OnlineCourse and Course.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_OnlineCourse_Course]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[OnlineCourse]'))
- ALTER TABLE [dbo].[OnlineCourse] WITH CHECK ADD
- CONSTRAINT [FK_OnlineCourse_Course] FOREIGN KEY([CourseID])
- REFERENCES [dbo].[Course] ([CourseID]);
- GO
- ALTER TABLE [dbo].[OnlineCourse] CHECK
- CONSTRAINT [FK_OnlineCourse_Course];
- GO
- -- Define the relationship between StudentGrade and Course.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_StudentGrade_Course]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[StudentGrade]'))
- ALTER TABLE [dbo].[StudentGrade] WITH CHECK ADD
- CONSTRAINT [FK_StudentGrade_Course] FOREIGN KEY([CourseID])
- REFERENCES [dbo].[Course] ([CourseID]);
- GO
- ALTER TABLE [dbo].[StudentGrade] CHECK
- CONSTRAINT [FK_StudentGrade_Course];
- GO
-
- --Define the relationship between StudentGrade and Student.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_StudentGrade_Student]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[StudentGrade]'))
- ALTER TABLE [dbo].[StudentGrade] WITH CHECK ADD
- CONSTRAINT [FK_StudentGrade_Student] FOREIGN KEY([StudentID])
- REFERENCES [dbo].[Person] ([PersonID]);
- GO
- ALTER TABLE [dbo].[StudentGrade] CHECK
- CONSTRAINT [FK_StudentGrade_Student];
- GO
-
- -- Define the relationship between CourseInstructor and Course.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_CourseInstructor_Course]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[CourseInstructor]'))
- ALTER TABLE [dbo].[CourseInstructor] WITH CHECK ADD
- CONSTRAINT [FK_CourseInstructor_Course] FOREIGN KEY([CourseID])
- REFERENCES [dbo].[Course] ([CourseID]);
- GO
- ALTER TABLE [dbo].[CourseInstructor] CHECK
- CONSTRAINT [FK_CourseInstructor_Course];
- GO
-
- -- Define the relationship between CourseInstructor and Person.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_CourseInstructor_Person]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[CourseInstructor]'))
- ALTER TABLE [dbo].[CourseInstructor] WITH CHECK ADD
- CONSTRAINT [FK_CourseInstructor_Person] FOREIGN KEY([PersonID])
- REFERENCES [dbo].[Person] ([PersonID]);
- GO
- ALTER TABLE [dbo].[CourseInstructor] CHECK
- CONSTRAINT [FK_CourseInstructor_Person];
- GO
-
- -- Define the relationship between Course and Department.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_Course_Department]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[Course]'))
- ALTER TABLE [dbo].[Course] WITH CHECK ADD
- CONSTRAINT [FK_Course_Department] FOREIGN KEY([DepartmentID])
- REFERENCES [dbo].[Department] ([DepartmentID]);
- GO
- ALTER TABLE [dbo].[Course] CHECK CONSTRAINT [FK_Course_Department];
- GO
-
- --Define the relationship between OfficeAssignment and Person.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_OfficeAssignment_Person]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[OfficeAssignment]'))
- ALTER TABLE [dbo].[OfficeAssignment] WITH CHECK ADD
- CONSTRAINT [FK_OfficeAssignment_Person] FOREIGN KEY([InstructorID])
- REFERENCES [dbo].[Person] ([PersonID]);
- GO
- ALTER TABLE [dbo].[OfficeAssignment] CHECK
- CONSTRAINT [FK_OfficeAssignment_Person];
- GO
-
-
-
-
-Insert data
-
-Open a new query window and then paste in the following script. Run the script to insert data. This script uses the [INSERT](http://msdn.microsoft.com/en-us/library/windowsazure/ee336284.aspx) statement to add values to each column.
-
-
- -- Insert data into the Person table.
- SET IDENTITY_INSERT dbo.Person ON;
- GO
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (1, 'Abercrombie', 'Kim', '1995-03-11', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (2, 'Barzdukas', 'Gytis', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (3, 'Justice', 'Peggy', null, '2001-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (4, 'Fakhouri', 'Fadi', '2002-08-06', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (5, 'Harui', 'Roger', '1998-07-01', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (6, 'Li', 'Yan', null, '2002-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (7, 'Norman', 'Laura', null, '2003-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (8, 'Olivotto', 'Nino', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (9, 'Tang', 'Wayne', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (10, 'Alonso', 'Meredith', null, '2002-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (11, 'Lopez', 'Sophia', null, '2004-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (12, 'Browning', 'Meredith', null, '2000-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (13, 'Anand', 'Arturo', null, '2003-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (14, 'Walker', 'Alexandra', null, '2000-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (15, 'Powell', 'Carson', null, '2004-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (16, 'Jai', 'Damien', null, '2001-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (17, 'Carlson', 'Robyn', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (18, 'Zheng', 'Roger', '2004-02-12', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (19, 'Bryant', 'Carson', null, '2001-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (20, 'Suarez', 'Robyn', null, '2004-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (21, 'Holt', 'Roger', null, '2004-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (22, 'Alexander', 'Carson', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (23, 'Morgan', 'Isaiah', null, '2001-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (24, 'Martin', 'Randall', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (25, 'Kapoor', 'Candace', '2001-01-15', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (26, 'Rogers', 'Cody', null, '2002-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (27, 'Serrano', 'Stacy', '1999-06-01', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (28, 'White', 'Anthony', null, '2001-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (29, 'Griffin', 'Rachel', null, '2004-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (30, 'Shan', 'Alicia', null, '2003-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (31, 'Stewart', 'Jasmine', '1997-10-12', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (32, 'Xu', 'Kristen', '2001-7-23', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (33, 'Gao', 'Erica', null, '2003-01-30');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (34, 'Van Houten', 'Roger', '2000-12-07', null);
- GO
- SET IDENTITY_INSERT dbo.Person OFF;
- GO
- -- Insert data into the Department table.
- INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
- VALUES (1, 'Engineering', 350000.00, '2007-09-01', 2);
- INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
- VALUES (2, 'English', 120000.00, '2007-09-01', 6);
- INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
- VALUES (4, 'Economics', 200000.00, '2007-09-01', 4);
- INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
- VALUES (7, 'Mathematics', 250000.00, '2007-09-01', 3);
- GO
- -- Insert data into the Course table.
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (1050, 'Chemistry', 4, 1);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (1061, 'Physics', 4, 1);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (1045, 'Calculus', 4, 7);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (2030, 'Poetry', 2, 2);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (2021, 'Composition', 3, 2);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (2042, 'Literature', 4, 2);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (4022, 'Microeconomics', 3, 4);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (4041, 'Macroeconomics', 3, 4);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (4061, 'Quantitative', 2, 4);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (3141, 'Trigonometry', 4, 7);
- GO
- -- Insert data into the OnlineCourse table.
- INSERT INTO dbo.OnlineCourse (CourseID, URL)
- VALUES (2030, 'http://www.fineartschool.net/Poetry');
- INSERT INTO dbo.OnlineCourse (CourseID, URL)
- VALUES (2021, 'http://www.fineartschool.net/Composition');
- INSERT INTO dbo.OnlineCourse (CourseID, URL)
- VALUES (4041, 'http://www.fineartschool.net/Macroeconomics');
- INSERT INTO dbo.OnlineCourse (CourseID, URL)
- VALUES (3141, 'http://www.fineartschool.net/Trigonometry');
- --Insert data into OnsiteCourse table.
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (1050, '123 Smith', 'MTWH', '11:30');
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (1061, '234 Smith', 'TWHF', '13:15');
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (1045, '121 Smith','MWHF', '15:30');
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (4061, '22 Williams', 'TH', '11:15');
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (2042, '225 Adams', 'MTWH', '11:00');
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (4022, '23 Williams', 'MWF', '9:00');
- -- Insert data into the CourseInstructor table.
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (1050, 1);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (1061, 31);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (1045, 5);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (2030, 4);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (2021, 27);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (2042, 25);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (4022, 18);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (4041, 32);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (4061, 34);
- GO
- --Insert data into the OfficeAssignment table.
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (1, '17 Smith');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (4, '29 Adams');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (5, '37 Williams');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (18, '143 Smith');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (25, '57 Adams');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (27, '271 Williams');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (31, '131 Smith');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (32, '203 Williams');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (34, '213 Smith');
- -- Insert data into the StudentGrade table.
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2021, 2, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2030, 2, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2021, 3, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2030, 3, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2021, 6, 2.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2042, 6, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2021, 7, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2042, 7, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2021, 8, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2042, 8, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 9, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 10, null);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 11, 2.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 12, null);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4061, 12, null);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 14, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 13, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4061, 13, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 14, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 15, 2.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 16, 2);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 17, null);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 19, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4061, 20, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4061, 21, 2);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 22, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 22, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4061, 22, 2.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 23, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1045, 23, 1.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 24, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 25, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1050, 26, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 26, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 27, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1045, 28, 2.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1050, 28, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 29, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1050, 30, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 30, 4);
- GO
-
-
-Query sample and system data in the Management Portal for SQL Database
-
-To check your work, run a query that returns the data you just entered. You can also run built-in stored procedures and data management views that provide information about the databases running on your SQL Database server.
-
-Query sample data
-
-In a new query window, copy and run the following Transact-SQL script to retrieve some of the data you just added.
-
-
-
- SELECT
- Course.Title as "Course Title"
- ,Department.Name as "Department"
- ,Person.LastName as "Instructor"
- ,OnsiteCourse.Location as "Location"
- ,OnsiteCourse.Days as "Days"
- ,OnsiteCourse.Time as "Time"
- FROM
- Course
- INNER JOIN Department
- ON Course.DepartmentID = Department.DepartmentID
- INNER JOIN CourseInstructor
- ON Course.CourseID = CourseInstructor.CourseID
- INNER JOIN Person
- ON CourseInstructor.PersonID = Person.PersonID
- INNER JOIN OnsiteCourse
- ON OnsiteCourse.CourseID = CourseInstructor.CourseID;
-
-
-You should see a result set that looks like the following illustration.
-
-![Image13] []
-
-
-Query system data
-
-You can also use system views and built-in stored procedures to get information from the server. For the purposes of this tutorial, you will try out just a few commands.
-
-Run the following command to find out which databases are available on the server.
-
- SELECT * FROM sys.databases
-
-Run this command to return a list of users currently connected to the server.
-
- SELECT user_name(),suser_sname()
-
-Run this stored procedure to return a list of all of the objects in the **School** database.
-
- EXEC SP_help
-
-Do not close the portal connection to the **School** database. You will need it again in a few minutes.
-
-
-
-Create a database login and assign permissions
-
-In SQL Database, you can create logins and grant permissions using Transact-SQL. In this lesson, using Transact-SQL, you will do three things: create a SQL Server authentication login, create a database user, and grant permissions via role membership.
-
-A SQL Server authentication login is used for server connections. All users who access a database on a SQL Database server do so by providing a SQL Server authentication login name and password.
-
-To create a login, you must first connect to the **master** database.
-
-Create a SQL Server authentication login
-
-1. Go back to the Windows Azure (Preview) Management Portal, select **SQL Databases**, click **Servers**, choose the server and then click the white arrow to open the
-server page.
-
- ![Image5] []
-
-2. On the Quick Start page, click **Manage Server** to open a new connection to the Management Portal for SQL Database.
-
-3. Enter the administrator name and password. This is the administrator login that you specified when you created the server.
-
- ![Image20] []
-
-4. The SQL Database management portal opens in a new browser window. Click **Select a Database** at the top, and click **master**.
-
- ![Image14] []
-
-5. If you see an error on the page similar to the following, ignore it. Click **New Query** to open a query window that lets you execute Transact-SQL commands on the **master** database.
-
- ![Image15] []
-
-6. Copy and paste the following command into the query window.
-
- CREATE LOGIN SQLDBLogin WITH password='Password1';
-
-7. Run the command to create a new SQL Server login named 'SQLDBLogin'.
-
-
-Create a database user and assign permissions
-
-After you create a SQL Server authentication login, the next step is to assign the database and permission levels associated with the login. You do this by creating a **database user** on each database.
-
-1. Go back to the SQL Database management portal page that connects to the **School** database. If you closed the browser window, start a new connection to **School** database using the steps from the previous lesson, "Add data and a schema using Transact-SQL script".
-
- On the SQL Database management portal page, the **School** database name is visible in the top left corner.
-
- ![Image12] []
-
-2. Click **New Query** to open a new query window and copy in the following statement.
-
- CREATE USER SQLDBUser FROM LOGIN SQLDBLogin;
-
-3. Run the script. This script creates a new database user based on the login.
-
- Next, you'll assign permissions using the db_datareader role. Database users assigned to this role can read all data from all user tables in the database.
-
-4. Open a new query window and then enter and run the next statement. This statement runs a built-in stored procedure that assigns the db_datareader role to the new user you just created.
-
- EXEC sp_addrolemember 'db_datareader', 'SQLDBUser';
-
-You now have a new SQL Server authentication login that has read-only permission to the **School** database. Using these steps, you can create other SQL Server authentication logins to allow different levels of access to your data.
-
-
-
-
-Connect from other applications
-
-Now that you have an operational database, you can connect to it from an Excel workbook.
-
-Connect from Excel
-
-
-If Excel 2010 is installed on your computer, you can use the following steps to connect to your sample database.
-
-1. In Excel, on the Data tab, click **From Other Sources**, and then click **From SQL Server**.
-
-2. In the Data Connection wizard, enter the fully-qualified domain name of your SQL Database server, followed by a SQL Server authentication login that has permission to access the database.
-
- The server name can be found on the Windows Azure management portal, on SQL Database, on Server page, on the Dashboard, in **Manage URL**. The server name consists of a series of letters and numbers, followed by '.database.windows.net'. Specify this name in the Database Connection wizard. Do not include the http:// or https:// prefix when specifying the name.
-
- Enter a SQL Server authentication login. For testing purposes, you can use the administrator login that you created when you set up the server. For regular data access, use a database user login similar to the one you just created.
-
- ![Image16] []
-
-3. On the next page, choose the **School** database, and then choose **Course**. Click **Finish**.
-
- ![Image17] []
-
-4. The Import Data dialog box appears that prompts you to select how and where to import your data. With the default options selected, click **OK**.
-
- ![Image19] []
-
-
-5. In the worksheet, you should see a table similar to the following.
-
- ![Image18] []
-
-Using just Excel, you can import only one table at a time. A better approach is to use the PowerPivot for Excel add-in, which lets you import and work with multiple tables as a single data set. Working with PowerPivot is beyond the scope of this tutorial, but you can get more information on this [Microsoft web site](http://www.microsoft.com/en-us/bi/powerpivot.aspx).
-
-
-Next steps
-
-Now that you are familiar with SQL Database and the management portals, you can try out other tools and techniques used by SQL Server database administrators.
-
-To actively manage your new database, consider installing and using SQL Server Management Studio. Management Studio is the primary database administration tool for managing SQL Server databases, including those running on Windows Azure. Using Management Studio, you can save queries for future use, add new tables and stored procedures, and hone your Transact-SQL skills in a rich scripting environment that includes a syntax checker, intellisense, and templates. To get started, follow the instructions in [Managing SQL Databases Using SQL Server Management Studio](http://www.windowsazure.com/en-us/develop/net/common-tasks/sql-azure-management/).
-
-Fluency in the Transact-SQL query and data definition language is essential for database administrators. If you are new to Transact-SQL, start with the [Tutorial: Writing Transact-SQL Statements](http://msdn.microsoft.com/en-us/library/ms365303.aspx) to learn some basic skills.
-
-There are other methods for moving an on-premise database to SQL Database. If you have existing databases, or if you downloaded sample databases to practice with, try the following alternative approaches:
-
-* [Migrating Databases to SQL Database](http://msdn.microsoft.com/en-us/library/windowsazure/ee730904.aspx)
-* [Copying Databases in SQL Database](http://msdn.microsoft.com/en-us/library/windowsazure/ff951624.aspx)
-* [How to Use SQL Database Programmatically](http://www.windowsazure.com/en-us/develop/net/how-to-guides/sql-azure/)
-
-
-
-
-[Image1]: Media/1NavPaneDBSelected_SQLTut.png
-[Image2]: Media/2MainPageCustomCreateDB_SQLTut.png
-[Image3]: Media/3DatabaseSettings_SQLTut.PNG
-[Image4]: Media/4ServerSettings_SQLTut.png
-[Image5]: Media/5DBPortalDatabasesServers_SQLTut.PNG
-[Image6]: media/6DBConfigFirewall_SQLTut.png
-[Image7]: media/7DBConfigFirewallSAVE_SQLTut.png
-[Image8]: media/8MainPageHome_SQLTut.PNG
-[Image9]: media/9dblistschool_SQLTut.png
-[Image10]: media/10dbportalmanagebutton_SQLTut.png
-[Image11]: media/11ManageDatabaseLogin_SQLTut.png
-[Image12]: media/12DBPortalNewQuery_SQLTut.png
-[Image13]: media/13DBQueryResults_SQLTut.png
-[Image14]: media/14DBPortalConnectMaster_SQLTut.PNG
-[Image15]: media/15DBPortalConnectMasterErr_SQLTut.PNG
-[Image16]: media/16ExcelConnect_SQLTut.png
-[Image17]: media/17ExcelSelect_SQLTut.png
-[Image18]: media/18ExcelTable_SQLTut.png
-[Image19]: media/19ExcelImport_SQLTut.png
-[Image20]: media/11ManageDatabaseLogin_SQLTut.png
-
diff --git a/ITPro/Services/sql-databases/How-To-Manage-SDB-on-WA.md b/ITPro/Services/sql-databases/How-To-Manage-SDB-on-WA.md
deleted file mode 100644
index 2d632b741a5..00000000000
--- a/ITPro/Services/sql-databases/How-To-Manage-SDB-on-WA.md
+++ /dev/null
@@ -1,843 +0,0 @@
-# How to Manage SQL Databases on Windows Azure
-
-This guide shows you how to perform administrative tasks for logical servers and database instances on Windows Azure SQL Database.
-
-##What is SQL Database?
-
-SQL Database provides relational database management services on Windows Azure, and is based on SQL Server technology. With SQL Database, you can easily provision and deploy database instances, and take advantage of a distributed data center that provides enterprise-class availability, scalability, and security with the benefits of built-in data protection and self-healing.
-
-##Table of Contents
-
-* [Sign in to Windows Azure][]
-* [Configure SQL Database][]
-* [Connect using Management Studio][]
-* [Deploy a database to Windows Azure][]
-* [Add logins and users][]
-* [Scale a SQL Database solution][]
-* [Monitor logical servers and database instances][]
-* [Next Steps][]
-
-
-Sign in to Windows Azure
-
-SQL Database provides relational data storage, access, and management services on Windows Azure. To use it, you'll need a Windows Azure subscription.
-
-1. Open a web browser, and browse to [http://www.windowsazure.com](http://www.windowsazure.com). To get started with a free account, click free trial in the upper right corner and follow the steps.
-
-2. Your account is now created. You are ready to get started.
-
-
-Create and configure SQL Database
-
-Next, you'll step through logical server creation and configuration. In the new Windows Azure (Preview) Management Portal, revised workflows let you create a database first, and then create a server.
-
-In this guide, you'll create the server first. You might prefer this approach if you have existing SQL Server databases that you want to upload.
-
-Create a logical server
-
-1. Sign in at [http://www.windowsazure.com](http://www.windowsazure.com),
-
-2. Click **SQL Database** and then click **SERVERS** on the SQL Database home page.
-
-4. Click **Add** at the bottom of the page.
-
-5. In Server Settings, enter an administrator name as one word with no spaces.
-
- SQL Database uses SQL Authentication over an encrypted connection. A new SQL Server authentication login assigned to the sysadmin fixed server role will be created using the name you provide.
-
- The login cannot be an email address, Windows user account, or a Windows Live ID. Neither Claims nor Windows authentication is supported on SQL Database.
-
-6. Provide a strong password that is over eight characters, using a combination of upper and lower case values, and a number or symbol.
-
-7. Choose a region. Region determines the geographical location of the server. Regions cannot be easily switched, so choose one that makes sense for this server. Choose a location that is closest to you. Keeping your Windows Azure application and database in the same region saves you on egress bandwidth cost and data latency.
-
-8. Be sure to keep the **Allow Services** option selected so that you can connect to this database using the Management Portal for SQL Database, storage services, and other services on Windows Azure.
-
-9. Click the checkmark at the bottom of the page when you are finished.
-
-Notice that you did not specify a server name. SQL Database auto-generates the server name to ensure there are no duplicate DNS entries. The server name is a ten-character alphanumeric string. You cannot change the name of your SQL Database server.
-
-In the next step, you will configure the firewall so that connections from applications running on your network are allowed access.
-
-Configure the firewall for the logical server
-
-1. Click **SQL Databases**, click **Servers**, and then click on the server you just created.
-
-2. Click **Configure**.
-
-3. Copy the current client IP address. If you are connecting from a network, this is the IP address that your router or proxy server is listening on. SQL Database detects the IP address used by the current connection so that you can create a firewall rule to accept connection requests from this device.
-
-4. Paste the IP address into both the beginning and end range. Later, if you encounter connection errors indicating that the range is too narrow, you can edit this rule to widen the range.
-
- If client computers use dynamically assigned IP addresses, you must specify a range that is broad enough to include IP addresses assigned to computers in your network. Start with a narrow range, and then expand it only if you need to.
-
-5. Enter a name for the firewall rule, such as the name of your computer or company.
-
-6. Click the checkmark to save the rule.
-
-7. Click **Save** at the bottom of the page to complete the step. If you do not see **Save**, refresh the browser page.
-
-You now have a logical server, a firewall rule that allows inbound connections from your IP address, and an administrator login. In the next step, you'll switch to your local computer to complete the remaining configuration steps.
-
-**Note:** The logical server you just created is transient and will be dynamically hosted on physical servers in a data center. If you delete the server, you should know in advance that this is a non-recoverable action. Be sure to backup any databases that you subsequently upload to the server.
-
-
-
-Connect using Management Studio
-
-Management Studio is an administrative tool that lets you manage multiple SQL Server instances and servers in a single workspace. If you already have an on-premises SQL Server instance, you can open a connection to both the on-premises instance and a logical server on Windows Azure to perform tasks side by side.
-
-Management Studio includes features that are not currently available in the management portal, such as a syntax checker and the ability to save scripts and named queries for reuse. SQL Database is just a tabular data stream (TDS) endpoint. Any tools that work with TDS, including Management Studio, are valid for SQL Database operations. Scripts that you develop for on-premises server will run on a SQL Database logical server.
-
-In the following step, you'll use Management Studio to connect to a logical server on Windows Azure. This step requires you to have SQL Server Management Studio version 2008 R2 or 2012. If you need help downloading or connecting to Management Studio, see [Managing SQL Database using Management Studio][] on this site.
-
-Before you can connect, it is sometimes necessary to create a firewall exception that allows outbound requests on port 1433 on your local system. Computers that are secure by default typically do not have port 1433 open.
-
-Configure the firewall for an on-premises server
-
-1. In Windows Firewall with Advanced Security, create a new outbound rule.
-
-2. Choose **Port**, specify TCP 1433, specify **Allow the connection**, and be sure that the **Public** profile is selected.
-
-3. Provide a meaningful name, such as *WindowsAzureSQLDatabase (tcp-out) port 1433*.
-
-
-Connect to a logical server
-
-1. In Management Studio, in Connect to Server, make sure that Database Engine is selected, then enter the logical server name in this format: *servername*.database.widnows.net
-
- You can also get the fully qualified server name in the management portal, on the server dashboard, in MANAGE URL.
-
-2. In Authentication, choose **SQL Server Authentication** and then enter the administrator login that you created when you configured the logical server.
-
-3. Click **Options**.
-
-4. In Connect to database, specify **master**.
-
-
-Connect to an on-premises server
-
-1. In Management Studio, in Connect to Server, make sure that Database Engine is selected, then enter the name of a local instance in this format: *servername*\\*instancename*. If the server is local and a default instance, enter *localhost*.
-
-2. In Authentication, choose **Windows Authentication** and then enter a Windows account that is a member of the sysadmin role.
-
-
-Deploy a database to Windows Azure
-
-There are numerous approaches for moving an on-premises SQL Server database to Windows Azure. In this task, you'll use the Deploy Database to SQL Database wizard to upload a sample database.
-
-The School sample database is conveniently simple; all of its objects are compatible with SQL Database, eliminating the need to modify or prepare a database for migration. As a new administrator, try deploying a simple database first to learn the steps before using your own databases.
-
-**Note:** Review the SQL Database Migration Guide for detailed instructions on how to prepare an on-premises database for migration to Windows Azure. Also, consider downloading the Windows Azure Training Kit. It includes a lab that shows an alternative approach to migrating an on-premises database.
-
-Create the school database on an on-premises server
-
-Scripts for creating this database can be found in the [Getting Started with SQL Database Administration][]. In this guide, you'll run these scripts in Management Studio to create an on-premises version of the school database.
-
-1. In Management Studio, connect to an on-premises server. Right-click **Databases**, click **New Database**, and enter *school*.
-
-2. Right-click on *school*, click **New Query**.
-
-3. Copy and then execute the Create Schema script from the tutorial.
-
-
- -- Create the Department table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[Department]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[Department](
- [DepartmentID] [int] NOT NULL,
- [Name] [nvarchar](50) NOT NULL,
- [Budget] [money] NOT NULL,
- [StartDate] [datetime] NOT NULL,
- [Administrator] [int] NULL,
- CONSTRAINT [PK_Department] PRIMARY KEY CLUSTERED
- (
- [DepartmentID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the Person table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[Person]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[Person](
- [PersonID] [int] IDENTITY(1,1) NOT NULL,
- [LastName] [nvarchar](50) NOT NULL,
- [FirstName] [nvarchar](50) NOT NULL,
- [HireDate] [datetime] NULL,
- [EnrollmentDate] [datetime] NULL,
- CONSTRAINT [PK_School.Student] PRIMARY KEY CLUSTERED
- (
- [PersonID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the OnsiteCourse table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[OnsiteCourse]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[OnsiteCourse](
- [CourseID] [int] NOT NULL,
- [Location] [nvarchar](50) NOT NULL,
- [Days] [nvarchar](50) NOT NULL,
- [Time] [smalldatetime] NOT NULL,
- CONSTRAINT [PK_OnsiteCourse] PRIMARY KEY CLUSTERED
- (
- [CourseID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the OnlineCourse table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[OnlineCourse]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[OnlineCourse](
- [CourseID] [int] NOT NULL,
- [URL] [nvarchar](100) NOT NULL,
- CONSTRAINT [PK_OnlineCourse] PRIMARY KEY CLUSTERED
- (
- [CourseID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- --Create the StudentGrade table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[StudentGrade]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[StudentGrade](
- [EnrollmentID] [int] IDENTITY(1,1) NOT NULL,
- [CourseID] [int] NOT NULL,
- [StudentID] [int] NOT NULL,
- [Grade] [decimal](3, 2) NULL,
- CONSTRAINT [PK_StudentGrade] PRIMARY KEY CLUSTERED
- (
- [EnrollmentID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the CourseInstructor table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[CourseInstructor]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[CourseInstructor](
- [CourseID] [int] NOT NULL,
- [PersonID] [int] NOT NULL,
- CONSTRAINT [PK_CourseInstructor] PRIMARY KEY CLUSTERED
- (
- [CourseID] ASC,
- [PersonID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the Course table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[Course]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[Course](
- [CourseID] [int] NOT NULL,
- [Title] [nvarchar](100) NOT NULL,
- [Credits] [int] NOT NULL,
- [DepartmentID] [int] NOT NULL,
- CONSTRAINT [PK_School.Course] PRIMARY KEY CLUSTERED
- (
- [CourseID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the OfficeAssignment table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[OfficeAssignment]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[OfficeAssignment](
- [InstructorID] [int] NOT NULL,
- [Location] [nvarchar](50) NOT NULL,
- [Timestamp] [timestamp] NOT NULL,
- CONSTRAINT [PK_OfficeAssignment] PRIMARY KEY CLUSTERED
- (
- [InstructorID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Define the relationship between OnsiteCourse and Course.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_OnsiteCourse_Course]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[OnsiteCourse]'))
- ALTER TABLE [dbo].[OnsiteCourse] WITH CHECK ADD
- CONSTRAINT [FK_OnsiteCourse_Course] FOREIGN KEY([CourseID])
- REFERENCES [dbo].[Course] ([CourseID]);
- GO
- ALTER TABLE [dbo].[OnsiteCourse] CHECK
- CONSTRAINT [FK_OnsiteCourse_Course];
- GO
-
- -- Define the relationship between OnlineCourse and Course.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_OnlineCourse_Course]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[OnlineCourse]'))
- ALTER TABLE [dbo].[OnlineCourse] WITH CHECK ADD
- CONSTRAINT [FK_OnlineCourse_Course] FOREIGN KEY([CourseID])
- REFERENCES [dbo].[Course] ([CourseID]);
- GO
- ALTER TABLE [dbo].[OnlineCourse] CHECK
- CONSTRAINT [FK_OnlineCourse_Course];
- GO
- -- Define the relationship between StudentGrade and Course.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_StudentGrade_Course]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[StudentGrade]'))
- ALTER TABLE [dbo].[StudentGrade] WITH CHECK ADD
- CONSTRAINT [FK_StudentGrade_Course] FOREIGN KEY([CourseID])
- REFERENCES [dbo].[Course] ([CourseID]);
- GO
- ALTER TABLE [dbo].[StudentGrade] CHECK
- CONSTRAINT [FK_StudentGrade_Course];
- GO
-
- --Define the relationship between StudentGrade and Student.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_StudentGrade_Student]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[StudentGrade]'))
- ALTER TABLE [dbo].[StudentGrade] WITH CHECK ADD
- CONSTRAINT [FK_StudentGrade_Student] FOREIGN KEY([StudentID])
- REFERENCES [dbo].[Person] ([PersonID]);
- GO
- ALTER TABLE [dbo].[StudentGrade] CHECK
- CONSTRAINT [FK_StudentGrade_Student];
- GO
-
- -- Define the relationship between CourseInstructor and Course.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_CourseInstructor_Course]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[CourseInstructor]'))
- ALTER TABLE [dbo].[CourseInstructor] WITH CHECK ADD
- CONSTRAINT [FK_CourseInstructor_Course] FOREIGN KEY([CourseID])
- REFERENCES [dbo].[Course] ([CourseID]);
- GO
- ALTER TABLE [dbo].[CourseInstructor] CHECK
- CONSTRAINT [FK_CourseInstructor_Course];
- GO
-
- -- Define the relationship between CourseInstructor and Person.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_CourseInstructor_Person]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[CourseInstructor]'))
- ALTER TABLE [dbo].[CourseInstructor] WITH CHECK ADD
- CONSTRAINT [FK_CourseInstructor_Person] FOREIGN KEY([PersonID])
- REFERENCES [dbo].[Person] ([PersonID]);
- GO
- ALTER TABLE [dbo].[CourseInstructor] CHECK
- CONSTRAINT [FK_CourseInstructor_Person];
- GO
-
- -- Define the relationship between Course and Department.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_Course_Department]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[Course]'))
- ALTER TABLE [dbo].[Course] WITH CHECK ADD
- CONSTRAINT [FK_Course_Department] FOREIGN KEY([DepartmentID])
- REFERENCES [dbo].[Department] ([DepartmentID]);
- GO
- ALTER TABLE [dbo].[Course] CHECK CONSTRAINT [FK_Course_Department];
- GO
-
- --Define the relationship between OfficeAssignment and Person.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_OfficeAssignment_Person]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[OfficeAssignment]'))
- ALTER TABLE [dbo].[OfficeAssignment] WITH CHECK ADD
- CONSTRAINT [FK_OfficeAssignment_Person] FOREIGN KEY([InstructorID])
- REFERENCES [dbo].[Person] ([PersonID]);
- GO
- ALTER TABLE [dbo].[OfficeAssignment] CHECK
- CONSTRAINT [FK_OfficeAssignment_Person];
- GO
-
-
-Next, copy and execute the Insert Data script.
-
-
- -- Insert data into the Person table.
- SET IDENTITY_INSERT dbo.Person ON;
- GO
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (1, 'Abercrombie', 'Kim', '1995-03-11', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (2, 'Barzdukas', 'Gytis', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (3, 'Justice', 'Peggy', null, '2001-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (4, 'Fakhouri', 'Fadi', '2002-08-06', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (5, 'Harui', 'Roger', '1998-07-01', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (6, 'Li', 'Yan', null, '2002-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (7, 'Norman', 'Laura', null, '2003-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (8, 'Olivotto', 'Nino', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (9, 'Tang', 'Wayne', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (10, 'Alonso', 'Meredith', null, '2002-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (11, 'Lopez', 'Sophia', null, '2004-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (12, 'Browning', 'Meredith', null, '2000-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (13, 'Anand', 'Arturo', null, '2003-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (14, 'Walker', 'Alexandra', null, '2000-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (15, 'Powell', 'Carson', null, '2004-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (16, 'Jai', 'Damien', null, '2001-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (17, 'Carlson', 'Robyn', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (18, 'Zheng', 'Roger', '2004-02-12', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (19, 'Bryant', 'Carson', null, '2001-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (20, 'Suarez', 'Robyn', null, '2004-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (21, 'Holt', 'Roger', null, '2004-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (22, 'Alexander', 'Carson', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (23, 'Morgan', 'Isaiah', null, '2001-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (24, 'Martin', 'Randall', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (25, 'Kapoor', 'Candace', '2001-01-15', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (26, 'Rogers', 'Cody', null, '2002-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (27, 'Serrano', 'Stacy', '1999-06-01', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (28, 'White', 'Anthony', null, '2001-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (29, 'Griffin', 'Rachel', null, '2004-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (30, 'Shan', 'Alicia', null, '2003-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (31, 'Stewart', 'Jasmine', '1997-10-12', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (32, 'Xu', 'Kristen', '2001-7-23', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (33, 'Gao', 'Erica', null, '2003-01-30');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (34, 'Van Houten', 'Roger', '2000-12-07', null);
- GO
- SET IDENTITY_INSERT dbo.Person OFF;
- GO
- -- Insert data into the Department table.
- INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
- VALUES (1, 'Engineering', 350000.00, '2007-09-01', 2);
- INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
- VALUES (2, 'English', 120000.00, '2007-09-01', 6);
- INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
- VALUES (4, 'Economics', 200000.00, '2007-09-01', 4);
- INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
- VALUES (7, 'Mathematics', 250000.00, '2007-09-01', 3);
- GO
- -- Insert data into the Course table.
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (1050, 'Chemistry', 4, 1);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (1061, 'Physics', 4, 1);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (1045, 'Calculus', 4, 7);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (2030, 'Poetry', 2, 2);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (2021, 'Composition', 3, 2);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (2042, 'Literature', 4, 2);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (4022, 'Microeconomics', 3, 4);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (4041, 'Macroeconomics', 3, 4);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (4061, 'Quantitative', 2, 4);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (3141, 'Trigonometry', 4, 7);
- GO
- -- Insert data into the OnlineCourse table.
- INSERT INTO dbo.OnlineCourse (CourseID, URL)
- VALUES (2030, 'http://www.fineartschool.net/Poetry');
- INSERT INTO dbo.OnlineCourse (CourseID, URL)
- VALUES (2021, 'http://www.fineartschool.net/Composition');
- INSERT INTO dbo.OnlineCourse (CourseID, URL)
- VALUES (4041, 'http://www.fineartschool.net/Macroeconomics');
- INSERT INTO dbo.OnlineCourse (CourseID, URL)
- VALUES (3141, 'http://www.fineartschool.net/Trigonometry');
- --Insert data into OnsiteCourse table.
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (1050, '123 Smith', 'MTWH', '11:30');
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (1061, '234 Smith', 'TWHF', '13:15');
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (1045, '121 Smith','MWHF', '15:30');
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (4061, '22 Williams', 'TH', '11:15');
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (2042, '225 Adams', 'MTWH', '11:00');
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (4022, '23 Williams', 'MWF', '9:00');
- -- Insert data into the CourseInstructor table.
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (1050, 1);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (1061, 31);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (1045, 5);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (2030, 4);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (2021, 27);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (2042, 25);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (4022, 18);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (4041, 32);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (4061, 34);
- GO
- --Insert data into the OfficeAssignment table.
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (1, '17 Smith');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (4, '29 Adams');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (5, '37 Williams');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (18, '143 Smith');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (25, '57 Adams');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (27, '271 Williams');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (31, '131 Smith');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (32, '203 Williams');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (34, '213 Smith');
- -- Insert data into the StudentGrade table.
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2021, 2, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2030, 2, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2021, 3, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2030, 3, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2021, 6, 2.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2042, 6, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2021, 7, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2042, 7, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2021, 8, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2042, 8, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 9, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 10, null);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 11, 2.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 12, null);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4061, 12, null);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 14, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 13, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4061, 13, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 14, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 15, 2.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 16, 2);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 17, null);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 19, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4061, 20, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4061, 21, 2);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 22, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 22, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4061, 22, 2.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 23, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1045, 23, 1.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 24, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 25, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1050, 26, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 26, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 27, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1045, 28, 2.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1050, 28, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 29, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1050, 30, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 30, 4);
- GO
-
-
- You now have an on-premises database that you can export to Windows Azure. Next, you'll run a wizard that creates a .bacpac file, loads it onto Windows Azure, and imports it into SQL Database.
-
-
-Deploy to SQL Database
-
-1. In Management Studio, connect to an on-premises SQL Server instance that has a database you want to migrate.
-
-2. Right-click the school database that you just created, point to **Tasks**, and click **Deploy Database to SQL Database**.
-
-3. In Deployment Settings, enter a name for the database, such as *school*.
-
-4. Click **Connect**.
-
-5. In Server name, enter the 10-character server name, followed by .databases.windows.net.
-
-6. In Authentication, choose **SQL Server Authentication**.
-
-7. Enter the administrator login name and password that you provisioned when creating the SQL Database logical server.
-
-8. Click **Options**.
-
-9. In Connection Properties, in Connect to database, type **master**.
-
-10. Click **Connect**. This step concludes the connection specification and takes you back to the wizard.
-
-
-11. Click **Next** and click **Finish** to run the wizard.
-
-Verify database deployment
-
-1. In Management Studio, connect to the logical server. If you already have a connection open, you can close it and open a new one. The existing connection shows only those databases that were running at the time the connection was made.
-
- For instructions on how to connect to a logical server, see [Connect using Management Studio][] in this document.
-
-2. Expand the Databases folder. You should see the school database in the list.
-
-3. Right-click on the school database and click **New Query**.
-
-4. Execute the following query to verify that data is accessible.
-
-
- SELECT
- Course.Title as "Course Title"
- ,Department.Name as "Department"
- ,Person.LastName as "Instructor"
- ,OnsiteCourse.Location as "Location"
- ,OnsiteCourse.Days as "Days"
- ,OnsiteCourse.Time as "Time"
- FROM
- Course
- INNER JOIN Department
- ON Course.DepartmentID = Department.DepartmentID
- INNER JOIN CourseInstructor
- ON Course.CourseID = CourseInstructor.CourseID
- INNER JOIN Person
- ON CourseInstructor.PersonID = Person.PersonID
- INNER JOIN OnsiteCourse
- ON OnsiteCourse.CourseID = CourseInstructor.CourseID;
-
-
-
-Add logins and users
-
-After you deploy a database, you need to configure logins and assign permissions. In the next step, you’ll run two scripts.
-
-For the first script, you'll connect to master and run a script that creates logins. Logins will be used to support read and write operations, and to delegate operational tasks, such as the ability to run system queries without ‘sa’ permissions.
-
-The logins you create must be SQL Server authentication logins. If you already have ready-made scripts that use Windows user identities or claims identities, that script will not work on SQL Database.
-
-The second script assigns database user permissions. For this script, you will connect to a database already loaded on Windows Azure.
-
-Create logins
-
-1. In Management Studio, connect to a logical server on Windows Azure, expand the Databases folder, right-click **master**, and select **New Query**.
-
-2. Use the following Transact-SQL statements to create logins. Replace the password with a valid password. Select each one individually, and then click **Execute**. Repeat for the remaining logins.
-
-
- -- run on master, execute each line separately
- -- use this login to manage other logins on this server
- CREATE LOGIN sqladmin WITH password='<ProvidePassword>';
- CREATE USER sqladmin FROM LOGIN sqladmin;
- EXEC sp_addrolemember 'loginmanager', 'sqladmin';
-
- -- use this login to create or copy a database
- CREATE LOGIN sqlops WITH password='<ProvidePassword>';
- CREATE USER sqlops FROM LOGIN sqlops;
- EXEC sp_addrolemember 'dbmanager', 'sqlops';
-
-
-
-Create database users
-
-1. Expand the Databases folder, right-click **school**, and select **New Query**.
-
-2. Use the following Transact-SQL statements to add database users. Replace the password with a valid password.
-
-
- -- run on a regular database, execute each line separately
- -- use this login for read operations
- CREATE LOGIN sqlreader WITH password='<ProvidePassword>';
- CREATE USER sqlreader FROM LOGIN sqlreader;
- EXEC sp_addrolemember 'db_datareader', 'sqlreader';
-
- -- use this login for write operations
- CREATE LOGIN sqlwriter WITH password='<ProvidePassword>';
- CREATE USER sqlwriter FROM LOGIN sqlwriter;
- EXEC sp_addrolemember 'db_datawriter', 'sqlwriter';
-
- -- grant DMV permissions on the school database to 'sqlops'
- GRANT VIEW DATABASE STATE to 'sqlops';
-
-
-View and test logins
-
-1. In a new query window, connect to **master** and execute the following statement:
-
- SELECT * from sys.sql_logins;
-
-2. In Management Studio, right click on **school** database and select **New Query**.
-
-3. On the Query menu, point to **Connection**, and then click **Change Connection**.
-
-4. Login as *sqlreader*.
-
-5. Copy and try to run the following statement. You should get an error stating that the object does not exist.
-
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 30, 9);
-
-6. Open a second query window and change the connection context to *sqlwriter*. The same query should now run successfully.
-
-You have now created and tested several logins. For more information, see [Managing Databases and Logins in SQL Database][] and [Monitoring SQL Database Using Dynamic Management Views][].
-
-
-Monitor logical servers and database instances
-
-Monitoring tools and techniques that you might be accustomed to using on an on-premises server, such as auditing logins, running traces, and using performance counters, are not available for SQL Database. On Windows Azure, you use Data Management Views (DMVs) to monitor data capacity, query problems, and current connections.
-
-For more information, see [Monitoring SQL Database Using Dynamic Management Views][].
-
-
-Scale a SQL Database solution
-
-On Windows Azure, database scalability is synonymous with scale out, where a workload is redistributed across multiple commodity servers in a data center. Scale out is a strategy for addressing problems with data capacity or performance. A very large database that is on a high-growth trajectory will eventually require a scale out strategy, whether it is accessed by a few users or many users.
-
-Scale out on Windows Azure is best achieved through federation. SQL Database federation is based on horizontal sharding, where one or more tables are split by row and portioned across multiple federation members.
-
-Federation is not the only answer to every scalability problem. Sometimes the characteristics of your data or application requirements point to simpler approaches. The following list presents potential solutions in order of complexity.
-
-**Increase the size of the database**
-
-Databases are created at a fixed size subject to a maximum imposed by each edition. For the Web edition, you can increase a database to a maximum of 5 gigabytes. For Business edition, the maximum database size is 150 gigabytes. The most obvious way to increase data capacity is to change the edition and maximum size:
-
- ALTER DATABASE school MODIFY (EDITION = 'Business', MAXSIZE=10GB);
-
-**Use multiple databases and allocate users**
-
-In limited scenarios, you could create copies of a database and then allocate logins and users across each database. Before federation was an option, this was a common approach for redistributing a workload. This approach is viable for databases that you use on a short-term basis and then merge later into a primary database that you keep on premise, and for solutions that provide read-only data.
-
-**Use federations**
-
-Federations in SQL Database are used to achieve greater scalability and performance. One or more tables within a database are split by row and portioned across multiple databases (Federation members). This type of horizontal partitioning is often referred to as ‘sharding’. The primary scenarios in which this is useful are where you need to achieve scale, performance, or to manage capacity.
-
-Federations are supported in the Business edition. For more information, see [Federations in SQL Database][] and [SQL Database Federations Tutorial - DBA][].
-
-**Consider other forms of storage**
-
-Remember that Windows Azure supports multiple forms of data storage, including table storage and blob storage. If you do not require relational features, table or blob storage can be more economical.
-
-Next Steps
-
-Now that you've learned the basics of SQL Database administration, follow these links to learn how to do more complex administative tasks.
-
-* See [SQL Database][] on MSDN
-* Visit the [SQL Database TechNet WIKI][]
-
-
-[Concepts]: #Concepts
-[Sign in to Windows Azure]: #PreReq1
-[Configure SQL Database]: #PreReq2
-[Connect using Management Studio]: #PreReq3
-[Deploy a database to Windows Azure]: #HowTo1
-[Add logins and users]: #HowTo2
-[Monitor logical servers and database instances]: #HowTo3
-[Scale a SQL Database solution]: #HowTo4
-[Next Steps]: #NextSteps
-
-[SQL Database]: http://msdn.microsoft.com/en-us/library/windowsazure/gg619386
-
-[SQL Database TechNet WIKI]: http://social.technet.microsoft.com/wiki/contents/articles/2267.sql-azure-technet-wiki-articles-index-en-us.aspx
-
-[How to Use SQL Database]: http://www.windowsazure.com/en-us/develop/net/how-to-guides/sql-azure/
-[Federations in SQL Database]: http://msdn.microsoft.com/en-us/library/windowsazure/hh597452.aspx
-[SQL Database Federations Tutorial - DBA]: http://msdn.microsoft.com/en-us/library/windowsazure/hh778416.aspx
-[Managing SQL Database using Management Studio]: http://www.windowsazure.com/en-us/develop/net/common-tasks/sql-azure-management/
-[Monitoring SQL Database Using Dynamic Management Views]: http://msdn.microsoft.com/en-us/library/windowsazure/ff394114.aspx
-[Introducing Geo-Replication for Windows Azure Storage]: http://blogs.msdn.com/b/windowsazurestorage/archive/2011/09/15/introducing-geo-replication-for-windows-azure-storage.aspx
-[How to create a storage account for a Windows Azure Subscription]: http://msdn.microsoft.com/en-us/library/windowsazure/gg433066.aspx
-[Download Windows Azure SDK]: http://www.microsoft.com/en-us/download/details.aspx?id=15658
-[Windows Azure Management Tools]: http://wapmmc.codeplex.com/
-[Getting Started with SQL Database Administration]: http://www.windowsazure.com/en-us/manage/tutorials/sql-azure-management/
-[Managing Databases and Logins in SQL Database]: http://msdn.microsoft.com/en-us/library/windowsazure/ee336235.aspx
-[How to use the blob storage service]: https://www.windowsazure.com/en-us/develop/net/how-to-guides/blob-storage/
-[DAC SQL Database Import Export Service Client v 1.5]: http://sqldacexamples.codeplex.com/releases/view/85948
-
-
-[Adventure Works for SQL Database]: http://msftdbprodsamples.codeplex.com/releases/view/37304
-
diff --git a/ITPro/Services/sql-databases/Manage-SQL-database.md b/ITPro/Services/sql-databases/Manage-SQL-database.md
deleted file mode 100644
index e2b9426168b..00000000000
--- a/ITPro/Services/sql-databases/Manage-SQL-database.md
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
\ No newline at end of file
diff --git a/ITPro/Services/sql-databases/howto-configure-sqldb.md b/ITPro/Services/sql-databases/howto-configure-sqldb.md
deleted file mode 100644
index 731db4ec8e6..00000000000
--- a/ITPro/Services/sql-databases/howto-configure-sqldb.md
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-
-How to Create and Configure SQL Database
-
-In this topic, you'll step through logical server creation and configuration. In the new Windows Azure (Preview) Management Portal, revised workflows let you create a database first, and then create a server.
-
-However in this topic, you'll create the server first. You might prefer this approach if you have existing SQL Server databases that you want to upload.
-
-##Table of Contents##
-* [How to: Create a logical server](#configLogical)
-* [How to: Configure the firewall for the logical server](#configFWLogical)
-
-How to: Create a logical server
-
-1. Sign in to the [Management Portal](http://manage.windowsazure.com).
-
-2. Click **SQL Database** and then click **SERVERS** on the SQL Database home page.
-
-4. Click **Add** at the bottom of the page.
-
-5. In Server Settings, enter an administrator name as one word with no spaces.
-
- SQL Database uses SQL Authentication over an encrypted connection. A new SQL Server authentication login assigned to the sysadmin fixed server role will be created using the name you provide.
-
- The login cannot be an email address, Windows user account, or a Windows Live ID. Neither Claims nor Windows authentication is supported on SQL Database.
-
-6. Provide a strong password that is over eight characters, using a combination of upper and lower case values, and a number or symbol.
-
-7. Choose a region. Region determines the geographical location of the server. Regions cannot be easily switched, so choose one that makes sense for this server. Choose a location that is closest to you. Keeping your Windows Azure application and database in the same region saves you on egress bandwidth cost and data latency.
-
-8. Be sure to keep the **Allow Services** option selected so that you can connect to this database using the Management Portal for SQL Database, storage services, and other services on Windows Azure.
-
-9. Click the checkmark at the bottom of the page when you are finished.
-
-Notice that you did not specify a server name. SQL Database auto-generates the server name to ensure there are no duplicate DNS entries. The server name is a ten-character alphanumeric string. You cannot change the name of your SQL Database server.
-
-In the next step, you will configure the firewall so that connections from applications running on your network are allowed access.
-
-How to: Configure the firewall for the logical server
-
-1. In the [Management Portal](http://manage.windowsazure.com), click **SQL Databases**, click **Servers**, and then click on the server you just created.
-
-2. Click **Configure**.
-
-3. Copy the current client IP address. If you are connecting from a network, this is the IP address that your router or proxy server is listening on. SQL Database detects the IP address used by the current connection so that you can create a firewall rule to accept connection requests from this device.
-
-4. Paste the IP address into both the beginning and end range. Later, if you encounter connection errors indicating that the range is too narrow, you can edit this rule to widen the range.
-
- If client computers use dynamically assigned IP addresses, you must specify a range that is broad enough to include IP addresses assigned to computers in your network. Start with a narrow range, and then expand it only if you need to.
-
-5. Enter a name for the firewall rule, such as the name of your computer or company.
-
-6. Click the checkmark to save the rule.
-
-7. Click **Save** at the bottom of the page to complete the step. If you do not see **Save**, refresh the browser page.
-
-You now have a logical server, a firewall rule that allows inbound connections from your IP address, and an administrator login. In the next step, you'll switch to your local computer to complete the remaining configuration steps.
-
-**Note:** The logical server you just created is transient and will be dynamically hosted on physical servers in a data center. If you delete the server, you should know in advance that this is a non-recoverable action. Be sure to backup any databases that you subsequently upload to the server.
diff --git a/ITPro/Services/sql-databases/howto-deploy-sqlDB.md b/ITPro/Services/sql-databases/howto-deploy-sqlDB.md
deleted file mode 100644
index 06b28d91cbc..00000000000
--- a/ITPro/Services/sql-databases/howto-deploy-sqlDB.md
+++ /dev/null
@@ -1,581 +0,0 @@
-
-
-
-How to Deploy a Database to Windows Azure
-
-There are several different ways you can move an on-premises SQL Server database to Windows Azure. In this task, you'll use the Deploy Database to SQL Database wizard to upload a sample database.
-
-The School sample database is conveniently simple; all of its objects are compatible with SQL Database, eliminating the need to modify or prepare a database for migration. As a new administrator, try deploying a simple database first to learn the steps before using your own databases.
-
-**Note:** Review the SQL Database Migration Guide for detailed instructions on how to prepare an on-premises database for migration to Windows Azure. Also, consider downloading the Windows Azure Training Kit. It includes a lab that shows an alternative approach to migrating an on-premises database.
-
-##Table of Contents##
-* [How to: Create the school database on an on-premises server](#schooldb)
-* [How to: Deploy to SQL Database](#deploydb)
-* [How to: Verify database deployment](#verify)
-
-How to: Create the school database on an on-premises server
-
-Scripts for creating this database can be found in the [Getting Started with SQL Database Administration][]. In this guide, you'll run these scripts in Management Studio to create an on-premises version of the school database.
-
-1. In Management Studio, connect to an on-premises server. Right-click **Databases**, click **New Database**, and enter *school*.
-
-2. Right-click on *school*, click **New Query**.
-
-3. Copy and then execute the Create Schema script from the tutorial.
-
-
- -- Create the Department table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[Department]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[Department](
- [DepartmentID] [int] NOT NULL,
- [Name] [nvarchar](50) NOT NULL,
- [Budget] [money] NOT NULL,
- [StartDate] [datetime] NOT NULL,
- [Administrator] [int] NULL,
- CONSTRAINT [PK_Department] PRIMARY KEY CLUSTERED
- (
- [DepartmentID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the Person table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[Person]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[Person](
- [PersonID] [int] IDENTITY(1,1) NOT NULL,
- [LastName] [nvarchar](50) NOT NULL,
- [FirstName] [nvarchar](50) NOT NULL,
- [HireDate] [datetime] NULL,
- [EnrollmentDate] [datetime] NULL,
- CONSTRAINT [PK_School.Student] PRIMARY KEY CLUSTERED
- (
- [PersonID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the OnsiteCourse table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[OnsiteCourse]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[OnsiteCourse](
- [CourseID] [int] NOT NULL,
- [Location] [nvarchar](50) NOT NULL,
- [Days] [nvarchar](50) NOT NULL,
- [Time] [smalldatetime] NOT NULL,
- CONSTRAINT [PK_OnsiteCourse] PRIMARY KEY CLUSTERED
- (
- [CourseID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the OnlineCourse table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[OnlineCourse]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[OnlineCourse](
- [CourseID] [int] NOT NULL,
- [URL] [nvarchar](100) NOT NULL,
- CONSTRAINT [PK_OnlineCourse] PRIMARY KEY CLUSTERED
- (
- [CourseID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- --Create the StudentGrade table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[StudentGrade]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[StudentGrade](
- [EnrollmentID] [int] IDENTITY(1,1) NOT NULL,
- [CourseID] [int] NOT NULL,
- [StudentID] [int] NOT NULL,
- [Grade] [decimal](3, 2) NULL,
- CONSTRAINT [PK_StudentGrade] PRIMARY KEY CLUSTERED
- (
- [EnrollmentID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the CourseInstructor table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[CourseInstructor]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[CourseInstructor](
- [CourseID] [int] NOT NULL,
- [PersonID] [int] NOT NULL,
- CONSTRAINT [PK_CourseInstructor] PRIMARY KEY CLUSTERED
- (
- [CourseID] ASC,
- [PersonID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the Course table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[Course]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[Course](
- [CourseID] [int] NOT NULL,
- [Title] [nvarchar](100) NOT NULL,
- [Credits] [int] NOT NULL,
- [DepartmentID] [int] NOT NULL,
- CONSTRAINT [PK_School.Course] PRIMARY KEY CLUSTERED
- (
- [CourseID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Create the OfficeAssignment table.
- IF NOT EXISTS (SELECT * FROM sys.objects
- WHERE object_id = OBJECT_ID(N'[dbo].[OfficeAssignment]')
- AND type in (N'U'))
- BEGIN
- CREATE TABLE [dbo].[OfficeAssignment](
- [InstructorID] [int] NOT NULL,
- [Location] [nvarchar](50) NOT NULL,
- [Timestamp] [timestamp] NOT NULL,
- CONSTRAINT [PK_OfficeAssignment] PRIMARY KEY CLUSTERED
- (
- [InstructorID] ASC
- )WITH (IGNORE_DUP_KEY = OFF)
- )
- END;
- GO
-
- -- Define the relationship between OnsiteCourse and Course.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_OnsiteCourse_Course]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[OnsiteCourse]'))
- ALTER TABLE [dbo].[OnsiteCourse] WITH CHECK ADD
- CONSTRAINT [FK_OnsiteCourse_Course] FOREIGN KEY([CourseID])
- REFERENCES [dbo].[Course] ([CourseID]);
- GO
- ALTER TABLE [dbo].[OnsiteCourse] CHECK
- CONSTRAINT [FK_OnsiteCourse_Course];
- GO
-
- -- Define the relationship between OnlineCourse and Course.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_OnlineCourse_Course]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[OnlineCourse]'))
- ALTER TABLE [dbo].[OnlineCourse] WITH CHECK ADD
- CONSTRAINT [FK_OnlineCourse_Course] FOREIGN KEY([CourseID])
- REFERENCES [dbo].[Course] ([CourseID]);
- GO
- ALTER TABLE [dbo].[OnlineCourse] CHECK
- CONSTRAINT [FK_OnlineCourse_Course];
- GO
- -- Define the relationship between StudentGrade and Course.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_StudentGrade_Course]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[StudentGrade]'))
- ALTER TABLE [dbo].[StudentGrade] WITH CHECK ADD
- CONSTRAINT [FK_StudentGrade_Course] FOREIGN KEY([CourseID])
- REFERENCES [dbo].[Course] ([CourseID]);
- GO
- ALTER TABLE [dbo].[StudentGrade] CHECK
- CONSTRAINT [FK_StudentGrade_Course];
- GO
-
- --Define the relationship between StudentGrade and Student.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_StudentGrade_Student]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[StudentGrade]'))
- ALTER TABLE [dbo].[StudentGrade] WITH CHECK ADD
- CONSTRAINT [FK_StudentGrade_Student] FOREIGN KEY([StudentID])
- REFERENCES [dbo].[Person] ([PersonID]);
- GO
- ALTER TABLE [dbo].[StudentGrade] CHECK
- CONSTRAINT [FK_StudentGrade_Student];
- GO
-
- -- Define the relationship between CourseInstructor and Course.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_CourseInstructor_Course]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[CourseInstructor]'))
- ALTER TABLE [dbo].[CourseInstructor] WITH CHECK ADD
- CONSTRAINT [FK_CourseInstructor_Course] FOREIGN KEY([CourseID])
- REFERENCES [dbo].[Course] ([CourseID]);
- GO
- ALTER TABLE [dbo].[CourseInstructor] CHECK
- CONSTRAINT [FK_CourseInstructor_Course];
- GO
-
- -- Define the relationship between CourseInstructor and Person.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_CourseInstructor_Person]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[CourseInstructor]'))
- ALTER TABLE [dbo].[CourseInstructor] WITH CHECK ADD
- CONSTRAINT [FK_CourseInstructor_Person] FOREIGN KEY([PersonID])
- REFERENCES [dbo].[Person] ([PersonID]);
- GO
- ALTER TABLE [dbo].[CourseInstructor] CHECK
- CONSTRAINT [FK_CourseInstructor_Person];
- GO
-
- -- Define the relationship between Course and Department.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_Course_Department]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[Course]'))
- ALTER TABLE [dbo].[Course] WITH CHECK ADD
- CONSTRAINT [FK_Course_Department] FOREIGN KEY([DepartmentID])
- REFERENCES [dbo].[Department] ([DepartmentID]);
- GO
- ALTER TABLE [dbo].[Course] CHECK CONSTRAINT [FK_Course_Department];
- GO
-
- --Define the relationship between OfficeAssignment and Person.
- IF NOT EXISTS (SELECT * FROM sys.foreign_keys
- WHERE object_id = OBJECT_ID(N'[dbo].[FK_OfficeAssignment_Person]')
- AND parent_object_id = OBJECT_ID(N'[dbo].[OfficeAssignment]'))
- ALTER TABLE [dbo].[OfficeAssignment] WITH CHECK ADD
- CONSTRAINT [FK_OfficeAssignment_Person] FOREIGN KEY([InstructorID])
- REFERENCES [dbo].[Person] ([PersonID]);
- GO
- ALTER TABLE [dbo].[OfficeAssignment] CHECK
- CONSTRAINT [FK_OfficeAssignment_Person];
- GO
-
-
-Next, copy and execute the Insert Data script.
-
-
- -- Insert data into the Person table.
- SET IDENTITY_INSERT dbo.Person ON;
- GO
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (1, 'Abercrombie', 'Kim', '1995-03-11', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (2, 'Barzdukas', 'Gytis', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (3, 'Justice', 'Peggy', null, '2001-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (4, 'Fakhouri', 'Fadi', '2002-08-06', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (5, 'Harui', 'Roger', '1998-07-01', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (6, 'Li', 'Yan', null, '2002-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (7, 'Norman', 'Laura', null, '2003-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (8, 'Olivotto', 'Nino', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (9, 'Tang', 'Wayne', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (10, 'Alonso', 'Meredith', null, '2002-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (11, 'Lopez', 'Sophia', null, '2004-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (12, 'Browning', 'Meredith', null, '2000-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (13, 'Anand', 'Arturo', null, '2003-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (14, 'Walker', 'Alexandra', null, '2000-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (15, 'Powell', 'Carson', null, '2004-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (16, 'Jai', 'Damien', null, '2001-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (17, 'Carlson', 'Robyn', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (18, 'Zheng', 'Roger', '2004-02-12', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (19, 'Bryant', 'Carson', null, '2001-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (20, 'Suarez', 'Robyn', null, '2004-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (21, 'Holt', 'Roger', null, '2004-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (22, 'Alexander', 'Carson', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (23, 'Morgan', 'Isaiah', null, '2001-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (24, 'Martin', 'Randall', null, '2005-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (25, 'Kapoor', 'Candace', '2001-01-15', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (26, 'Rogers', 'Cody', null, '2002-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (27, 'Serrano', 'Stacy', '1999-06-01', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (28, 'White', 'Anthony', null, '2001-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (29, 'Griffin', 'Rachel', null, '2004-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (30, 'Shan', 'Alicia', null, '2003-09-01');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (31, 'Stewart', 'Jasmine', '1997-10-12', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (32, 'Xu', 'Kristen', '2001-7-23', null);
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (33, 'Gao', 'Erica', null, '2003-01-30');
- INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
- VALUES (34, 'Van Houten', 'Roger', '2000-12-07', null);
- GO
- SET IDENTITY_INSERT dbo.Person OFF;
- GO
- -- Insert data into the Department table.
- INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
- VALUES (1, 'Engineering', 350000.00, '2007-09-01', 2);
- INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
- VALUES (2, 'English', 120000.00, '2007-09-01', 6);
- INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
- VALUES (4, 'Economics', 200000.00, '2007-09-01', 4);
- INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
- VALUES (7, 'Mathematics', 250000.00, '2007-09-01', 3);
- GO
- -- Insert data into the Course table.
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (1050, 'Chemistry', 4, 1);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (1061, 'Physics', 4, 1);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (1045, 'Calculus', 4, 7);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (2030, 'Poetry', 2, 2);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (2021, 'Composition', 3, 2);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (2042, 'Literature', 4, 2);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (4022, 'Microeconomics', 3, 4);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (4041, 'Macroeconomics', 3, 4);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (4061, 'Quantitative', 2, 4);
- INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
- VALUES (3141, 'Trigonometry', 4, 7);
- GO
- -- Insert data into the OnlineCourse table.
- INSERT INTO dbo.OnlineCourse (CourseID, URL)
- VALUES (2030, 'http://www.fineartschool.net/Poetry');
- INSERT INTO dbo.OnlineCourse (CourseID, URL)
- VALUES (2021, 'http://www.fineartschool.net/Composition');
- INSERT INTO dbo.OnlineCourse (CourseID, URL)
- VALUES (4041, 'http://www.fineartschool.net/Macroeconomics');
- INSERT INTO dbo.OnlineCourse (CourseID, URL)
- VALUES (3141, 'http://www.fineartschool.net/Trigonometry');
- --Insert data into OnsiteCourse table.
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (1050, '123 Smith', 'MTWH', '11:30');
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (1061, '234 Smith', 'TWHF', '13:15');
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (1045, '121 Smith','MWHF', '15:30');
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (4061, '22 Williams', 'TH', '11:15');
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (2042, '225 Adams', 'MTWH', '11:00');
- INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
- VALUES (4022, '23 Williams', 'MWF', '9:00');
- -- Insert data into the CourseInstructor table.
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (1050, 1);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (1061, 31);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (1045, 5);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (2030, 4);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (2021, 27);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (2042, 25);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (4022, 18);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (4041, 32);
- INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
- VALUES (4061, 34);
- GO
- --Insert data into the OfficeAssignment table.
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (1, '17 Smith');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (4, '29 Adams');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (5, '37 Williams');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (18, '143 Smith');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (25, '57 Adams');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (27, '271 Williams');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (31, '131 Smith');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (32, '203 Williams');
- INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
- VALUES (34, '213 Smith');
- -- Insert data into the StudentGrade table.
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2021, 2, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2030, 2, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2021, 3, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2030, 3, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2021, 6, 2.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2042, 6, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2021, 7, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2042, 7, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2021, 8, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (2042, 8, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 9, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 10, null);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 11, 2.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 12, null);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4061, 12, null);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 14, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 13, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4061, 13, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 14, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 15, 2.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 16, 2);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 17, null);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 19, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4061, 20, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4061, 21, 2);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 22, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4041, 22, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4061, 22, 2.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (4022, 23, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1045, 23, 1.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 24, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 25, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1050, 26, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 26, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 27, 3);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1045, 28, 2.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1050, 28, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 29, 4);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1050, 30, 3.5);
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 30, 4);
- GO
-
-
- You now have an on-premises database that you can export to Windows Azure. Next, you'll run a wizard that creates a .bacpac file, loads it onto Windows Azure, and imports it into SQL Database.
-
-
-How to: Deploy to SQL Database
-
-1. In Management Studio, connect to an on-premises SQL Server instance that has a database you want to migrate.
-
-2. Right-click the school database that you just created, point to **Tasks**, and click **Deploy Database to SQL Database**.
-
-3. In Deployment Settings, enter a name for the database, such as *school*.
-
-4. Click **Connect**.
-
-5. In Server name, enter the 10-character server name, followed by .databases.windows.net.
-
-6. In Authentication, choose **SQL Server Authentication**.
-
-7. Enter the administrator login name and password that you provisioned when creating the SQL Database logical server.
-
-8. Click **Options**.
-
-9. In Connection Properties, in Connect to database, type **master**.
-
-10. Click **Connect**. This step concludes the connection specification and takes you back to the wizard.
-
-
-11. Click **Next** and click **Finish** to run the wizard.
-
-
-How to: Verify database deployment
-
-1. In Management Studio, connect to the logical server. If you already have a connection open, you can close it and open a new one. The existing connection shows only those databases that were running at the time the connection was made.
-
- For instructions on how to connect to a logical server, see [How to Manage SQL Database](../../../manage/services/sql-databases/howto-manage-sqldb/).
-
-2. Expand the Databases folder. You should see the school database in the list.
-
-3. Right-click on the school database and click **New Query**.
-
-4. Execute the following query to verify that data is accessible.
-
-
- SELECT
- Course.Title as "Course Title"
- ,Department.Name as "Department"
- ,Person.LastName as "Instructor"
- ,OnsiteCourse.Location as "Location"
- ,OnsiteCourse.Days as "Days"
- ,OnsiteCourse.Time as "Time"
- FROM
- Course
- INNER JOIN Department
- ON Course.DepartmentID = Department.DepartmentID
- INNER JOIN CourseInstructor
- ON Course.CourseID = CourseInstructor.CourseID
- INNER JOIN Person
- ON CourseInstructor.PersonID = Person.PersonID
- INNER JOIN OnsiteCourse
- ON OnsiteCourse.CourseID = CourseInstructor.CourseID;
-
-
-[Getting Started with SQL Database Administration]: http://www.windowsazure.com/en-us/manage/tutorials/sql-azure-management/
-
diff --git a/ITPro/Services/sql-databases/howto-manage-sqldb.md b/ITPro/Services/sql-databases/howto-manage-sqldb.md
deleted file mode 100644
index de66871284a..00000000000
--- a/ITPro/Services/sql-databases/howto-manage-sqldb.md
+++ /dev/null
@@ -1,133 +0,0 @@
-
-
-
-How to Manage SQL Database
-
-This topic shows you how to perform simple management tasks on Windows Azure SQL Database.
-
-##Table of Contents##
-
-* [How to: Connect to SQL Database in Windows Azure using Management Studio](#connect)
-* [How to: How to: Add logins and users to SQL Database in Windows Azure](#addlogins)
-
-
-How to: Connect to SQL Database in Windows Azure using Management Studio
-
-Management Studio is an administrative tool that lets you manage multiple SQL Server instances and servers in a single workspace. If you already have an on-premises SQL Server instance, you can open a connection to both the on-premises instance and a logical server on Windows Azure to perform tasks side by side.
-
-Management Studio includes features that are not currently available in the management portal, such as a syntax checker and the ability to save scripts and named queries for reuse. SQL Database is just a tabular data stream (TDS) endpoint. Any tools that work with TDS, including Management Studio, are valid for SQL Database operations. Scripts that you develop for on-premises server will run on a SQL Database logical server.
-
-In the following step, you'll use Management Studio to connect to a logical server on Windows Azure. This step requires you to have SQL Server Management Studio version 2008 R2 or 2012. If you need help downloading or connecting to Management Studio, see [Managing SQL Database using Management Studio][] on this site.
-
-Before you can connect, it is sometimes necessary to create a firewall exception that allows outbound requests on port 1433 on your local system. Computers that are secure by default typically do not have port 1433 open.
-
-##Configure the firewall for an on-premises server
-
-1. In Windows Firewall with Advanced Security, create a new outbound rule.
-
-2. Choose **Port**, specify TCP 1433, specify **Allow the connection**, and be sure that the **Public** profile is selected.
-
-3. Provide a meaningful name, such as *WindowsAzureSQLDatabase (tcp-out) port 1433*.
-
-
-##Connect to a logical server
-
-1. In Management Studio, in Connect to Server, make sure that Database Engine is selected, then enter the logical server name in this format: *servername*.database.widnows.net
-
- You can also get the fully qualified server name in the management portal, on the server dashboard, in MANAGE URL.
-
-2. In Authentication, choose **SQL Server Authentication** and then enter the administrator login that you created when you configured the logical server.
-
-3. Click **Options**.
-
-4. In Connect to database, specify **master**.
-
-
-##Connect to an on-premises server
-
-1. In Management Studio, in Connect to Server, make sure that Database Engine is selected, then enter the name of a local instance in this format: *servername*\\*instancename*. If the server is local and a default instance, enter *localhost*.
-
-2. In Authentication, choose **Windows Authentication** and then enter a Windows account that is a member of the sysadmin role.
-
-
-How to: Add logins and users to SQL Database in Windows Azure
-
-After you deploy a database, you need to configure logins and assign permissions. In the next step, you’ll run two scripts.
-
-For the first script, you'll connect to master and run a script that creates logins. Logins will be used to support read and write operations, and to delegate operational tasks, such as the ability to run system queries without ‘sa’ permissions.
-
-The logins you create must be SQL Server authentication logins. If you already have ready-made scripts that use Windows user identities or claims identities, that script will not work on SQL Database.
-
-The second script assigns database user permissions. For this script, you will connect to a database already loaded on Windows Azure.
-
-##Create logins
-
-1. In Management Studio, connect to a logical server on Windows Azure, expand the Databases folder, right-click **master**, and select **New Query**.
-
-2. Use the following Transact-SQL statements to create logins. Replace the password with a valid password. Select each one individually, and then click **Execute**. Repeat for the remaining logins.
-
-
- -- run on master, execute each line separately
- -- use this login to manage other logins on this server
- CREATE LOGIN sqladmin WITH password='<ProvidePassword>';
- CREATE USER sqladmin FROM LOGIN sqladmin;
- EXEC sp_addrolemember 'loginmanager', 'sqladmin';
-
- -- use this login to create or copy a database
- CREATE LOGIN sqlops WITH password='<ProvidePassword>';
- CREATE USER sqlops FROM LOGIN sqlops;
- EXEC sp_addrolemember 'dbmanager', 'sqlops';
-
-
-
-##Create database users
-
-1. Expand the Databases folder, right-click **school**, and select **New Query**.
-
-2. Use the following Transact-SQL statements to add database users. Replace the password with a valid password.
-
-
- -- run on a regular database, execute each line separately
- -- use this login for read operations
- CREATE LOGIN sqlreader WITH password='<ProvidePassword>';
- CREATE USER sqlreader FROM LOGIN sqlreader;
- EXEC sp_addrolemember 'db_datareader', 'sqlreader';
-
- -- use this login for write operations
- CREATE LOGIN sqlwriter WITH password='<ProvidePassword>';
- CREATE USER sqlwriter FROM LOGIN sqlwriter;
- EXEC sp_addrolemember 'db_datawriter', 'sqlwriter';
-
- -- grant DMV permissions on the school database to 'sqlops'
- GRANT VIEW DATABASE STATE to 'sqlops';
-
-
-##View and test logins
-
-1. In a new query window, connect to **master** and execute the following statement:
-
- SELECT * from sys.sql_logins;
-
-2. In Management Studio, right click on **school** database and select **New Query**.
-
-3. On the Query menu, point to **Connection**, and then click **Change Connection**.
-
-4. Login as *sqlreader*.
-
-5. Copy and try to run the following statement. You should get an error stating that the object does not exist.
-
- INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
- VALUES (1061, 30, 9);
-
-6. Open a second query window and change the connection context to *sqlwriter*. The same query should now run successfully.
-
-You have now created and tested several logins. For more information, see [Managing Databases and Logins in SQL Database][] and [Monitoring SQL Database Using Dynamic Management Views][].
-
-[Managing Databases and Logins in SQL Database]: http://msdn.microsoft.com/en-us/library/windowsazure/ee336235.aspx
-[Monitoring SQL Database Using Dynamic Management Views]: http://msdn.microsoft.com/en-us/library/windowsazure/ff394114.aspx
-[Managing SQL Database using Management Studio]: http://www.windowsazure.com/en-us/develop/net/common-tasks/sql-azure-management/
-
-
-
-
-
diff --git a/ITPro/Services/sql-databases/howto-monitor-sqlDB.md b/ITPro/Services/sql-databases/howto-monitor-sqlDB.md
deleted file mode 100644
index 4858afdef99..00000000000
--- a/ITPro/Services/sql-databases/howto-monitor-sqlDB.md
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-How to Monitor Logical Servers and Database Instances
-
-Monitoring tools and techniques that you might be accustomed to using on an on-premises server, such as auditing logins, running traces, and using performance counters, are not available for SQL Database. On Windows Azure, you use Data Management Views (DMVs) to monitor data capacity, query problems, and current connections.
-
-For more information, see [Monitoring SQL Database Using Dynamic Management Views][].
-
-[Monitoring SQL Database Using Dynamic Management Views]: http://msdn.microsoft.com/en-us/library/windowsazure/ff394114.aspx
\ No newline at end of file
diff --git a/ITPro/Services/sql-databases/howto-scale-sqldb.md b/ITPro/Services/sql-databases/howto-scale-sqldb.md
deleted file mode 100644
index c2a22e826b8..00000000000
--- a/ITPro/Services/sql-databases/howto-scale-sqldb.md
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-How to Scale a SQL Database Solution
-
-
-On Windows Azure, database scalability is synonymous with scale out, where a workload is redistributed across multiple commodity servers in a data center. Scale out is a strategy for addressing problems with data capacity or performance. A very large database that is on a high-growth trajectory will eventually require a scale out strategy, whether it is accessed by a few users or many users.
-
-Scale out on Windows Azure is best achieved through federation. SQL Database federation is based on horizontal sharding, where one or more tables are split by row and portioned across multiple federation members.
-
-Federation is not the only answer to every scalability problem. Sometimes the characteristics of your data or application requirements point to simpler approaches. The following list presents potential solutions in order of complexity.
-
-##Increase the size of the database
-
-Databases are created at a fixed size subject to a maximum imposed by each edition. For the Web edition, you can increase a database to a maximum of 5 gigabytes. For Business edition, the maximum database size is 150 gigabytes. The most obvious way to increase data capacity is to change the edition and maximum size:
-
- ALTER DATABASE school MODIFY (EDITION = 'Business', MAXSIZE=10GB);
-
-##Use multiple databases and allocate users
-
-In limited scenarios, you could create copies of a database and then allocate logins and users across each database. Before federation was an option, this was a common approach for redistributing a workload. This approach is viable for databases that you use on a short-term basis and then merge later into a primary database that you keep on premise, and for solutions that provide read-only data.
-
-##Use federations
-
-Federations in SQL Database are used to achieve greater scalability and performance. One or more tables within a database are split by row and portioned across multiple databases (Federation members). This type of horizontal partitioning is often referred to as ‘sharding’. The primary scenarios in which this is useful are where you need to achieve scale, performance, or to manage capacity.
-
-Federations are supported in the Business edition. For more information, see [Federations in SQL Database][] and [SQL Database Federations Tutorial - DBA][].
-
-##Consider other forms of storage
-
-Remember that Windows Azure supports multiple forms of data storage, including table storage and blob storage. If you do not require relational features, table or blob storage can be more economical.
-
-[Federations in SQL Database]: http://msdn.microsoft.com/en-us/library/windowsazure/hh597452.aspx
-[SQL Database Federations Tutorial - DBA]: http://msdn.microsoft.com/en-us/library/windowsazure/hh778416.aspx
\ No newline at end of file
diff --git a/ITPro/Services/storage/StorageAccountConcepts.md b/ITPro/Services/storage/StorageAccountConcepts.md
deleted file mode 100644
index 6952777da35..00000000000
--- a/ITPro/Services/storage/StorageAccountConcepts.md
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-Storage Account Concepts
-
-
-- **geo reundant storage (GRS)** Geo-redundant storage provides the highest level of storage durability by seamlessly replicating your data to a secondary location within the same region. This enables failover in case of a major failure in the primary location. The secondary location is hundreds of miles from the primary location. GRS is implemented through a feature called *geo-replication*, which is turned on for a storage account by default, but can be turned off if you don’t want to use it (for example, if company policies prevent its use). For more information, see [Introducing Geo-Replication for Windows Azure](http://blogs.msdn.com/b/windowsazurestorage/archive/2011/09/15/introducing-geo-replication-for-windows-azure-storage.aspx).
-
-- **locally redundant storage (LRS)** Locally redundant storage provides highly durable and available storage within a single location. For locally redundant storage, account data is replicated three times within the same data center. All storage in Windows Azure is locally redundant. For added durability, you can turn on geo-replication. Locally redundant storage is offered at a discount. For pricing information, see [Windows Azure Pricing Overview](http://www.windowsazure.com/en-us/pricing/details/).
-
-- **affinity group** An *affinity group* is a geographic grouping of your cloud service deployments and storage accounts within Windows Azure. An affinity group can improve service performance by locating computer workloads in the same data center or near the target user audience. Also, no billing charges are incurred for egress.
-
-- **storage account endpoints** The *endpoints* for a storage account represent the highest level of the namespace for accessing blobs, tables, or queues. The default endpoints for a storage account have the following formats:
-
- - Blob service: http://*mystorageaccount*.blob.core.windows.net
-
- - Table service: http://*mystorageaccount*.table.core.windows.net
-
- - Queue service: http://*mystorageaccount*.queue.core.windows.net
-
-- **storage account URLs** The URL for accessing an object in a storage account is built by appending the object's location in the storage account to the endpoint. For example, a blob address might have this format: http://*mystorageaccount*.blob.core.windows.net/*mycontainer*/*myblob*.
-
-- **storage access keys** When you create a storage account, Windows Azure generates two 512-bit storage access keys, which are used for authentication when the storage account is accessed. By providing two storage access keys, Windows Azure enables you to regenerate the keys with no interruption to your storage service or access to that service.
-
-- **minimal vs. verbose metrics** You can configure minimal or verbose metrics in the monitoring settings for your storage account. *Minimal metrics* collects metrics on data such as ingress/egress, availability, latency, and success percentages, which are aggregated for the Blob, Table, and Queue services. *Verbose metrics* collects operations-level detail in addition to service-level aggregates for the same metrics. Verbose metrics enable closer analysis of issues that occur during application operations. For the full list of available metrics, see [Storage Analytics Metrics Table Schema](http://msdn.microsoft.com/en-us/library/windowsazure/hh343264.aspx). For more information about storage monitoring, see [About Storage Analytics Metrics](http://msdn.microsoft.com/en-us/library/windowsazure/hh343258.aspx).
-
-- **logging** Logging is a configurable feature of storage accounts that enables logging of requests to read, write, and delete blobs, tables, and queues. You configure logging in the Windows Azure Management Portal, but you can't view the logs in the Management Portal. The logs are stored and accessed in the storage account, in the $logs container. For more information, see [Storage Analytics Overview](http://msdn.microsoft.com/en-us/library/windowsazure/hh343268.aspx).
\ No newline at end of file
diff --git a/ITPro/Services/storage/howto-create-storage-account.md b/ITPro/Services/storage/howto-create-storage-account.md
deleted file mode 100644
index 3b469c3ce37..00000000000
--- a/ITPro/Services/storage/howto-create-storage-account.md
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-How To Create a Storage Account
-
-To store files and data in the Blob, Table, and Queue services in Windows Azure, you must create a storage account in the geographic region where you want to store the data.
-
-A storage account can contain up to 100 TB of blob, table, and queue data. You can create up to five storage accounts for each Windows Azure subscription.
-
-**Note** For a Windows Azure virtual machine, a storage account is created automatically in the deployment location if you do not already have a storage account in that location. The storage account name will be based on the virtual machine name.
-
-### To create a storage account ###
-
-1. Sign in to the [Windows Azure (Preview) Management Portal](http://manage.windowsazure.com).
-
-2. Click **Create New**, click **Storage**, and then click **Quick Create**.
-
- ![NewStorageAccount] (../media/Storage_NewStorageAccount.png)
-
-3. In **URL**, enter a subdomain name to use in the storage account URL. To access an object in storage, you will append the object's location to the endpoint. For example, the URL for accessing a blob might be http://*myaccount*.blob.core.windows.net/*mycontainer*/*myblob*.
-
-4. In **Region/Affinity Group**, select a region or affinity group for the storage. Select an affinity group instead of a region if you want your storage services to be in the same data center with other Windows Azure services that you are using. This can improve performance, and no charges are incurred for egress.
-
- **Note** To create an affinity group, open the **Networks** area of the Management Portal, click **Affinity Group**s, and then click either **Create a new affinity group** or **Create**. You can use affinity groups that you created in the earlier Management Portal. And you can create and manage affinity groups using the Windows Azure Service Management API. For more information, see [Operations on Affinity Groups](http://msdn.microsoft.com/en-us/library/windowsazure/ee460798.aspx).
-
-5. If you don't want geo-replication for your storage account, clear the **Enable Geo-Replication** check box.
-
- Geo-replication is enabled by default so that, in the event of a major disaster in the primary location, storage fails over to a secondary location. A secondary location in the same region is assigned and cannot be changed. After a geo-failover, the secondary location becomes the primary location for the storage account, and stored data is replicated to a new secondary location.
-
- If you don't want to use geo-replication, or if your organization's policies won't allow its use, you can turn off geo-replication. This will result in locally redundant storage, which is offered at a discount. Be aware that if you turn off geo-replication, and you later decide to turn it on again, you will incur a one-time charge to replicate your existing data to the secondary location.
-
-6. Click **Create Storage Account**.
-
- It can take a while for the storage account to be created. To check the status, you can monitor the notifications at the bottom of the portal. After the storage account has been created, your new storage account has **Online** status and is ready for use.
-
- ![StoragePage] (../media/Storage_StoragePage.png)
-
diff --git a/ITPro/Services/storage/howto-manage-storage-account.md b/ITPro/Services/storage/howto-manage-storage-account.md
deleted file mode 100644
index 990d5388a51..00000000000
--- a/ITPro/Services/storage/howto-manage-storage-account.md
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
-How To Manage Storage Accounts
-
-
-##Table of Contents##
-
-* [How to: Turn geo-replication off or on](#georeplication)
-* [How to: View, copy, and regenerate storage access keys](#regeneratestoragekeys)
-* [How to: Delete a storage account](#deletestorageaccount)
-* [Next steps](#next)
-
-
-
-How to: Turn geo-replication off or on
-
-When geo-replication is turned on, the stored content is replicated to a secondary location to enable failover to that location in case of a major disaster in the primary location. The secondary location is in the same region, but is hundreds of miles from the primary location. This is the highest level of storage durability, known as *geo redundant storage* (GRS). Geo-replication is turned on by default.
-
-If you turn off geo-replication, you have *locally redundant storage* (LRS). For locally redundant storage, account data is replicated three times within the same data center. LRS is offered at discounted rates. Be aware that if you turn off geo-replication, and you later change your mind, you will incur a one-time data cost to replicate your existing data to the secondary location.
-
-For more information about geo-replication, see [Introducing Geo-Replication for Windows Azure](http://blogs.msdn.com/b/windowsazurestorage/archive/2011/09/15/introducing-geo-replication-for-windows-azure-storage.aspx). For pricing information, see [Windows Azure Pricing Overview](http://www.windowsazure.com/en-us/pricing/details/).
-
-### To turn geo-replication on or off for a storage account ###
-
-1. In the [Windows (Preview) Management Portal](manage.windowsazure.com), click **Storage**, and then click the name of the storage account to open the dashboard.
-
-2. Click **Configure**.
-
-3. Beside **Geo-Replication**, click **On** or **Off**.
-
-4. Click **Save**.
-
-
-How to: View, copy, and regenerate storage access keys
-When you create a storage account, Windows Azure generates two 512-bit storage access keys, which are used for authentication when the storage account is accessed. By providing two storage access keys, Windows Azure enables you to regenerate the keys with no interruption to your storage service or access to that service.
-
-In the [Management Portal](manage.windowsazure.com), use **Manage Keys** on the dashboard or the **Storage** page to view, copy, and regenerate the storage access keys that are used to access the Blob, Table, and Queue services.
-
-### Copy a storage access key ###
-
-You can use **Manage Keys** to copy a storage access key to use in a connection string. The connection string requires the storage account name and a key to use in authentication. For information about configuring connection strings to access Windows Azure storage services, see [Configuring Connection Strings](http://msdn.microsoft.com/en-us/library/ee758697.aspx).
-
-1. In the [Management Portal](manage.windowsazure.com), click **Storage**, and then click the name of the storage account to open the dashboard.
-
-2. Click **Manage Keys**.
-
- **Manage Access Keys** opens.
-
- ![Managekeys] (../media/Storage_ManageKeys.png)
-
-
-3. To copy a storage access key, select the key text. Then right-click, and click **Copy**.
-
-### Regenerate storage access keys ###
-You should change the access keys to your storage account periodically to help keep your storage connections more secure. Two access keys are assigned to enable you to maintain connections to the storage account using one access key while you regenerate the other access key. The following procedure describes how to do that.
-
-1. Update the connection strings in your application code to reference the secondary access key of the storage account.
-
-2. Regenerate the primary access key for your storage account. In the [Management Portal](manage.windowsazure.com), from the dashboard or the **Configure** page, click **Manage Keys**. Click **Regenerate** under the primary access key, and then click **Yes** to confirm you want to generate a new key.
-
-3. Update the connection strings in your code to reference the new primary access key.
-
-4. Regenerate the secondary access key.
-
-
-How to: Delete a storage account
-
-To remove a storage account that you are no longer using, use **Delete** on the dashboard or the **Configure** page. **Delete** deletes the entire storage account, including all of the blobs, tables, and queues in the account.
-
-**Warning** There's no way to restore the content from a deleted storage account. Make sure you back up anything you want to save before you delete the account.
-
-1. In the [Management Portal](manage.windowsazure.com), click **Storage**.
-
-2. Click anywhere in the storage account entry except the name, and then click **Delete**.
-
- -Or-
-
- Click the name of the storage account to open the dashboard, and then click **Delete**.
-
-3. Click **Yes** to confirm you want to delete the storage account.
-
-
-Next steps
-
-- Learn more about Windows Azure storage services at [Storing and Accessing Data in Windows Azure](http://msdn.microsoft.com/en-us/library/gg433040.aspx).
-
-- Visit the [Windows Azure Storage Team Blog](http://blogs.msdn.com/b/windowsazurestorage/).
-
-- Configure your apps to use Windows Azure Blob, Table, and Queue services. The [Windows Azure Developer Center](http://www.windowsazure.com/en-us/develop/overview/) provides How To Guides for using the Blob, Table, and Queue storage services with your .NET, Node.js, Java, and PHP applications. For instructions specific to a programming language, see the How To Guides for that language.
-
diff --git a/ITPro/Services/storage/howto-monitor-storage-account.md b/ITPro/Services/storage/howto-monitor-storage-account.md
deleted file mode 100644
index 50a2d3abf17..00000000000
--- a/ITPro/Services/storage/howto-monitor-storage-account.md
+++ /dev/null
@@ -1,146 +0,0 @@
-
-
-
-How To Monitor a Storage Account
-
-Until you configure monitoring for your storage account, no monitoring data is collected, and the metrics charts on the dashboard and **Monitor** page are empty. For each data management service associated with the storage account (Blob, Queue, and Table), you can choose the level of monitoring - minimal or verbose - and specify the appropriate data retention policy for the service.
-
-**Note** Additional costs are associated with examining monitoring data in the Windows Azure (Preview) Management Portal. For more information, see [Storage Analytics and Billing](http://msdn.microsoft.com/en-us/library/windowsazure/hh360997.aspx).
-
-##Table of Contents##
-
-* [How to: Configure monitoring for a storage account](#configurestoragemonitoring)
-* [How to: Customize the dashboard for monitoring](#customizestoragemonitoring)
-* [How to: Customize the Monitor page](#customizemonitorpage)
-* [How to: Add metrics to the metrics table](#addmonitoringmetrics)
-* [How to: Customize the metrics chart](#customizemetricschart)
-* [How to: Configure logging](#configurelogging)
-
-
-
-
-1. In the [Management Portal](https://manage.windowsazure.com/), click **Storage**, and then click the storage account name to open the dashboard.
-
-2. Click **Configure**, and scroll down to the **monitoring** settings for the Blob, Table, and Queue services, shown below.
-
- ![MonitoringOptions] (../media/Storage_MonitoringOptions.png)
-
-3. In **monitoring**, set the level of monitoring and the data retention policy for each service:
-
-- To set the monitoring level, select one of the following:
-
- **Minimal** - Collects metrics such as ingress/egress, availability, latency, and success percentages, which are aggregated for the Blob, Table, and Queue services.
-
- **Verbose** – In addition to the minimal metrics, collects the same set of metrics for each storage operation in the Windows Azure Storage Service API. Verbose metrics enable closer analysis of issues that occur during application operations.
-
- **Off** - Turns off monitoring. Existing monitoring data is persisted through the end of the retention period.
-
-- To set the data retention policy, in **Retention (in days)**, type the number of days of data to retain from 1 365 days. If you do not want to set a retention policy, enter zero. If there is no retention policy, it is up to you to delete the monitoring data. We recommend setting a retention policy based on how long you want to retain storage analytics data for your account so that old and unused analytics data can be deleted by system at no cost.
-
-4. When you finish the monitoring configuration, click **Save**.
-You should start seeing monitoring data on the dashboard and the **Monitor** page after about an hour.
-
-Metrics are stored in the storage account in four tables named $MetricsTransactionsBlob, $MetricsTransactionsTable, $MetricsTransactionsQueue, and $MetricsCapacityBlob. For more information, see [Storage Analytics Metrics](http://msdn.microsoft.com/en-us/library/windowsazure/hh343258.aspx).
-
-After you set the monitoring levels and retention policies, you can choose which of the available metrics to monitor in the Management Portal, and which metrics to plot on metrics charts. A default set of metrics are displayed at each monitoring level. You can use **Add Metrics** to add or remove metrics from the metrics list.
-
-
-How to: Customize the dashboard for monitoring
-
-On the dashboard, you can choose up to six metrics to plot on the metrics chart from nine available metrics. For each service (Blob, Table, and Queue), the Availability, Success Percentage, and Total Requests metrics are available. The metrics available on the dashboard are the same for minimal or verbose monitoring.
-
-1. In the [Management Portal](https://manage.windowsazure.com/), click **Storage**, and then click the name of the storage account to open the dashboard.
-
-2. To change the metrics that are plotted on the chart, take one of the following actions:
-
-- To add a new metric to the chart, click the check box by the metric header. In a narrow display, click ***n* more** to access headers that can't be displayed in the header area.
-
-- To hide a metric that is plotted on the chart, clear the check box by the metric header.
-
- ![Monitoring_nmore] (../media/storage_Monitoring_nmore.png)
-
-- To change the time range the metrics chart displays, select 6 hours, 24 hours, or 7 days at the top of the chart.
-
-
-How to: Customize the Monitor page
-
-In the [Management Portal](https://manage.windowsazure.com/), on the **Monitor** page, you can view the full set of metrics for your storage account.
-
-- If your storage account has minimal monitoring configured, metrics such as ingress/egress, availability, latency, and success percentages are aggregated from the Blob, Table, and Queue services.
-
-- If your storage account has verbose monitoring configured, the metrics are available at a finer resolution of individual storage operations in addition to the service-level aggregates.
-
-You can add and remove metrics from the metrics table, and you can choose metrics to plot on the metrics chart.
-
-
-How to: Add metrics to the metrics table
-
-Use the following procedures to choose which storage metrics to view in the metrics charts and table that are displayed in the Management Portal. These settings do not affect the collection, aggregation, and storage of monitoring data in the storage account.
-
-1. In the [Management Portal](https://manage.windowsazure.com/), click **Storage**, and then click the name of the storage account to open the dashboard.
-
-2. Click **Monitor**.
-
- The **Monitor** page opens. By default, the metrics table displays a subset of the metrics that are available for monitoring. The illustration shows the default Monitor display for a storage account with verbose monitoring configured for all three services. Use **Add Metrics** to select the metrics you want to monitor from all available metrics.
-
-
- ![Monitoring_VerboseDisplay] (../media/Storage_Monitoring_VerboseDisplay.png)
-
- **Note** Consider costs when you select the metrics. There are transaction and egress costs associated with refreshing monitoring displays. For more information, see [Storage Analytics and Billing](http://msdn.microsoft.com/en-us/library/windowsazure/hh360997.aspx).
-
-3. Click **Add Metrics**.
-
- The aggregate metrics that are available in minimal monitoring are at the top of the list. If the check box is selected, the metric is displayed in the metrics list.
-
- ![AddMetricsInitialDisplay] (../media/Storage_AddMetrics_InitialDisplay.png)
-
-4. Hover over the right side of the dialog box to display a scrollbar that you can drag to scroll additional metrics into view. Drag the scrollbar to scroll through the list.
-
- ![AddMetricsScrollbar] (../media/Storage_AddMetrics_Scrollbar.png)
-
-
-5. Click the down arrow by a metric to expand a list of operations the metric is scoped to include. Select each operation that you want to view in the metrics table in the Management Portal.
-
- In the following illustration, the AUTHORIZATION ERROR PERCENTAGE metric has been expanded.
-
- ![ExpandCollapse] (../media/Storage_AddMetrics_ExpandCollapse.png)
-
-
-6. After you select metrics for all services, click OK (checkmark) to update the monitoring configuration. The selected metrics are added to the metrics table.
-
-7. To delete a metric from the table, click the metric to select it, and then click **Delete Metric**, as shown below.
-
- ![DeleteMetric] (../media/Storage_DeleteMetric.png)
-
-
-On the **Monitor** page, you can select any six metrics in the metrics table to plot on the metrics chart.
-
-
-How to: Customize the metrics chart
-
-1. In the [Management Portal](https://manage.windowsazure.com/), on the **Monitor** page for the storage account, in the metrics table, select up to 6 metrics to plot on the metrics chart. To select a metric, click the check box on its left side. To remove a metric from the chart, clear the check box.
-
-2. To change the time range the metrics chart displays, select **6 hours**, **24 hours**, or **7 days** at the top of the chart.
-
-
-
-
-
-For each of the storage services available with your storage account (Blob, Table, and Queue), you can save diagnostics logs for Read Requests, Write Requests, and/or Delete Requests, and can set the data retention policy for each of the services.
-
-1. In the [Management Portal](https://manage.windowsazure.com/), click **Storage**, and then click the name of the storage account to open the dashboard.
-
-2. Click **Configure**, and use the Down arrow on the keyboard to scroll down to **logging** (shown below).
-
- ![Storagelogging] (../media/Storage_LoggingOptions.png)
-
-
-3. For each service (Blob, Table, and Queue), configure the following:
-
-- The types of request to log: Read Requests, Write Requests, and Delete Requests
-
-- The number of days to retain the logged data. Enter zero is if you do not want to set a retention policy. If you do not set a retention policy, it is up to you to delete the logs.
-
-4. Click **Save**.
-
-The diagnostics logs are saved in a blob container named $logs in your storage account. For information about accessing the $logs container, see [About Storage Analytics Logging](http://msdn.microsoft.com/en-us/library/windowsazure/hh343262.aspx).
\ No newline at end of file
diff --git a/ITPro/Services/storage/whatis-a-storage-account.md b/ITPro/Services/storage/whatis-a-storage-account.md
deleted file mode 100644
index 6d2aa7845f4..00000000000
--- a/ITPro/Services/storage/whatis-a-storage-account.md
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-#What is a Storage Account
-
-A storage account gives your applications access to Windows Azure Blob, Table, and Queue services located in a geographic region. You need a storage account to use Windows Azure storage.
-
-The storage account represents the highest level of the namespace for accessing the storage services. A storage account can contain up to 100 TB of blob, queue, and table data. You can create up to five storage accounts for your Windows Azure subscription. For more information about storage accounts, see [Windows Azure Storage](http://www.windowsazure.com/en-us/home/features/storage/) and [Data Storage Offerings in Windows Azure](http://www.windowsazure.com/en-us/develop/net/fundamentals/cloud-storage/).
-
-Storage costs are based on storage utilization and the number of storage transactions required to add, update, read, and delete stored data. Storage utilization is calculated based on your average usage of storage for blobs, tables, and queues during a billing period. To learn more about your storage pricing, see [Windows Azure Pricing Overview](http://www.windowsazure.com/en-us/pricing/details).
-
-##Storage Account Concepts
-
-
-- **geo reundant storage (GRS)** Geo-redundant storage provides the highest level of storage durability by seamlessly replicating your data to a secondary location within the same region. This enables failover in case of a major failure in the primary location. The secondary location is hundreds of miles from the primary location. GRS is implemented through a feature called *geo-replication*, which is turned on for a storage account by default, but can be turned off if you don’t want to use it (for example, if company policies prevent its use). For more information, see [Introducing Geo-Replication for Windows Azure](http://blogs.msdn.com/b/windowsazurestorage/archive/2011/09/15/introducing-geo-replication-for-windows-azure-storage.aspx).
-
-- **locally redundant storage (LRS)** Locally redundant storage provides highly durable and available storage within a single location. For locally redundant storage, account data is replicated three times within the same data center. All storage in Windows Azure is locally redundant. For added durability, you can turn on geo-replication. Locally redundant storage is offered at a discount. For pricing information, see [Windows Azure Pricing Overview](http://www.windowsazure.com/en-us/pricing/details/).
-
-- **affinity group** An *affinity group* is a geographic grouping of your cloud service deployments and storage accounts within Windows Azure. An affinity group can improve service performance by locating computer workloads in the same data center or near the target user audience. Also, no billing charges are incurred for egress.
-
-- **storage account endpoints** The *endpoints* for a storage account represent the highest level of the namespace for accessing blobs, tables, or queues. The default endpoints for a storage account have the following formats:
-
- - Blob service: http://*mystorageaccount*.blob.core.windows.net
-
- - Table service: http://*mystorageaccount*.table.core.windows.net
-
- - Queue service: http://*mystorageaccount*.queue.core.windows.net
-
-- **storage account URLs** The URL for accessing an object in a storage account is built by appending the object's location in the storage account to the endpoint. For example, a blob address might have this format: http://*mystorageaccount*.blob.core.windows.net/*mycontainer*/*myblob*.
-
-- **storage access keys** When you create a storage account, Windows Azure generates two 512-bit storage access keys, which are used for authentication when the storage account is accessed. By providing two storage access keys, Windows Azure enables you to regenerate the keys with no interruption to your storage service or access to that service.
-
-- **minimal vs. verbose metrics** You can configure minimal or verbose metrics in the monitoring settings for your storage account. *Minimal metrics* collects metrics on data such as ingress/egress, availability, latency, and success percentages, which are aggregated for the Blob, Table, and Queue services. *Verbose metrics* collects operations-level detail in addition to service-level aggregates for the same metrics. Verbose metrics enable closer analysis of issues that occur during application operations. For the full list of available metrics, see [Storage Analytics Metrics Table Schema](http://msdn.microsoft.com/en-us/library/windowsazure/hh343264.aspx). For more information about storage monitoring, see [About Storage Analytics Metrics](http://msdn.microsoft.com/en-us/library/windowsazure/hh343258.aspx).
-
-- **logging** Logging is a configurable feature of storage accounts that enables logging of requests to read, write, and delete blobs, tables, and queues. You configure logging in the Windows Azure Management Portal, but you can't view the logs in the Management Portal. The logs are stored and accessed in the storage account, in the $logs container. For more information, see [Storage Analytics Overview](http://msdn.microsoft.com/en-us/library/windowsazure/hh343268.aspx).
\ No newline at end of file
diff --git a/ITPro/Services/websites/How to Use Websites.md b/ITPro/Services/websites/How to Use Websites.md
deleted file mode 100644
index 29f57ea6d25..00000000000
--- a/ITPro/Services/websites/How to Use Websites.md
+++ /dev/null
@@ -1,444 +0,0 @@
-
-# How to Use Web Sites #
-
-
-
-This guide will show you how to use Web Sites. The scenarios covered in this guide include creating, configuring, managing and monitoring web sites in Windows Azure.
-
-## Table of Contents ##
-
-- [What are Web Sites?](#whatarewebsites)
-- [How to: Create, Deploy and Delete a Web Site](#howtocreatedeploydelete)
-- [How to: Change Configuration Options for a Web Site](#howtochangeconfig)
-- [How to: Manage a Web Site](#howtomanage)
-- [How to: Monitor a Web Site](#howtomonitor)
-- [How to: Configure Diagnostics and Download Logs for a Web Site](#howtoconfigdiagnostics)
-- [How to: Configure a Web Site to Use Other Windows Azure Resources](#howtoconfigother)
-- [How to: Scale a Web Site](#howtoscale)
-- [How to: View Usage Quotas for a Web Site](#howtoviewusage)
-- [How to: Create a Web Site from the Gallery](#howtocreatefromgallery)
-- [How to: Develop and Deploy a Web Site with Microsoft WebMatrix](#howtodevdepwebmatrix)
-- [Next Steps](#nextsteps)
-
-##What are Web Sites?
-Web sites are web application hosts which support popular web application technologies such as .NET, Node.js and PHP without requiring any code changes to existing applications. All of the common programming models and resources that .NET, Node.js and PHP developers use to access resources such as files and databases will continue to work as expected on web sites deployed to Windows Azure. Web sites provide access to file and database resources and to all of the standard configuration files (such as web.config, php.ini and config.js) used by web applications today. A web site is the host for a web application running in the cloud that you can control and manage.
-
---------------------------------------------------------------------------------
-
-##How to: Create, Deploy and Delete a Web Site
-
-Just as you can quickly create and deploy a web application created from the gallery, you can also deploy a web site created on a workstation with traditional developer tools from Microsoft or other companies. This topic describes how to [Create a Web Site in Windows Azure](#createawebsite), deploy your web site as described in [Deploy a Web Site to Windows Azure](#deployawebsite) and delete a web site in [Delete a Web Site in Windows Azure](#deleteawebsite).
-
-### Development Tools for Creating a Web Site ###
-Some development tools available from Microsoft include [Microsoft Visual Studio 2010][VS2010], [Microsoft Expression Studio 4][msexpressionstudio] and [Microsoft WebMatrix][mswebmatrix], a free web development tool from Microsoft which provides essential functionality for web site development.
-
-###Create a Web Site in Windows Azure
-Follow these steps to create a web site in Windows Azure.
-
-1. Login to the Windows Azure portal.
-2. Click the **Create New** icon on the bottom left of the Windows Azure portal.
-3. Click the **Web Site** icon, click the **Quick Create** icon, enter a value for URL and then click the check mark next to create web site on the bottom right corner of the page.
-4. When the web site has been created you will see the text **Creation of Web Site '[SITENAME]' Completed**.
-5. Click the name of the web site displayed in the list of web sites to open the web site’s **Quick Start** management page.
-6. On the **Quick Start** page you are provided with options to set up TFS or GIT publishing if you would like to deploy your finished web site to Windows Azure using these methods. FTP publishing is set up by default for web sites and the FTP Host name is displayed under **FTP Hostname** on the **Quick Start** and **Dashboard** pages. Before publishing with FTP or GIT choose the option to **Reset deployment credentials** on the **Dashboard** page. Then specify the new credentials (username and password) to authenticate against the FTP Host or the Git Repository when deploying content to the web site.
-7. The **Configure** management page exposes several configurable application settings in the following sections:
-> - **Framework** – Set the version of .NET framework or PHP required by your web application.
-> - **Diagnostics** – Set logging options for gathering diagnostic information for your web site in this section.
-> - **App Settings** – Specify name/value pairs that will be loaded by your web application on start up. For .NET sites, these settings will be injected into your .NET configuration **AppSettings** at runtime, overriding existing settings. For PHP and Node sites these settings will be available as environment variables at runtime.
-> - **Connection Strings** – View connection strings for linked resources. For .NET sites, these connection strings will be injected into your .NET configuration **connectionStrings** settings at runtime, overriding existing entries where the key equals the linked database name. For PHP and Node sites these settings will be available as environment variables at runtime.
-> - **Default Documents** – Add your web application’s default document to this list if it is not already in the list. If your web application contains more than one of the files in the list then make sure your web site’s default document appears at the top of the list.
-
-###Deploy a Web Site to Windows Azure
-Windows Azure supports deploying web sites from remote computers using WebDeploy, FTP, GIT or TFS. Many development tools provide integrated support for publication using one or more of these methods and may only require that you provide the necessary credentials, site URL and hostname or URL for your chosen deployment method. Credentials and deployment URLs for all enabled deployment methods are stored in the web site’s publish profile, a file which can be downloaded from the **Quick Start** page or the **quick glance** section of the **Dashboard** page. If you prefer to deploy your web site with a separate client application, high quality open source GIT and FTP clients are available for download on the Internet for this purpose.
-
-#### Deploy a Web Site from Git ####
-If you use a Git for source code control, you can publish your app directly from a local Git repository to a web site. Git is a free, open-source, distributed version control system that handles small to very large projects. To use Git with your web site, you must set up Git publishing from the Quick Start or Dashboard management pages for your web site. After you set up Git publishing, each .Git push initiates a new deployment. You'll manage your Git deployments on the Deployments management page.
-
-**Tip**
-After you create your web site, use **Set up Git Publishing** from the **Quick Start** or **Dashboard** management pages to set up Git publishing for the web site. If you're new to Git, you'll be guided through creating a Git account and a local repository for your web site. You'll see the exact Git commands that you need to enter, including the Git repository URLs to use with your web site.
-
-#### Set up Git Publishing ####
-**To set up Git publishing**
-
-1. Create a web site in Windows Azure. (**Create New - Web Site**)
-2. From the **Quick Start** management page, click **Set up Git publishing**.
-
-Follow the instructions to create a deployment user account by specifying a username and password to use for deploying with Git and FTP, if you haven’t done that already. A Git repository will be created for the web site that you are managing.
-
-#### Push your local Git repository to Windows Azure ####
-The following procedures below will walk you through creating a new repository or cloning an existing repository and then pushing your content to the Git repository for the web site.
-
-**To push my local files to Windows Azure**
-
-1. Install the Git client. ([Download Git][getgit])
-2. Open a command prompt, change directories to your application's root directory, and type the following commands:
-
- git init
- git add.
- git commit -m "initial commit"
-
- This creates a local Git repository and commits your local application files to the repository.
-
-3. Add a remote Windows Azure repository and push your files to it.
-4. Open a command prompt, cd into your app's root directory and type the following:
-
- git remote add azure http://azure@microsoft.com.antdf0.windows-int.net/azureweb.git
- git push azure master
-
-> **Note**
-> The commands above will vary depending upon the name of the web site for which you have created the Git repository.
-
-#### To clone a web site to my computer ####
-1. Install the Git client. ([Download Git][getgit]) if you have not already.
-2. Clone your web site.
-3. Open a command prompt, change directories to the directory where you want your files, and type:
-
- git clone -b master
-
- where GitRepositoryURL is the URL for the Git repository that you want to clone.
-
-4. Commit changes, and push the repository's contents back to Windows Azure.
-
-5. After changing or adding some files, change directories your app's root directory and type:
-
- git add.
- git commit -m "some changes"
- git push
-
-After deployment begins, you can monitor the deployment status on the **Deployments** management page. When the deployment completes, click **Browse** to open your web site in a browser.
-
-###Delete a Web Site in Windows Azure
-Web sites are deleted using the **Delete** icon in the Windows Azure portal. The **Delete** icon is available in the Windows Azure portal when you click **Web Sites** to list all of your web sites and at the bottom of each of the web site management pages.
-
--------------------------------------------------------------------------------
-
-##How to: Change Configuration Options for a Web Site
-
-Configuration options for web sites are set on the Configure management page for the web site. This topic describes how to use the Configure management page to modify configuration options for a web site.
-
-### Change configuration options for a web site ###
-
-Follow these steps to change configuration options for a web site.
-
-
- - Open the web site’s management pages from the Windows Azure Portal.
- - Click the Configure tab to open the Configure management page.
- - Set the following configuration options for the web site as appropriate:
-