Products

Solutions

Resources

Partners

Community

About

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

The Community Blog is a personal opinion of community members and by no means the official standpoint of DNN Corp or DNN Platform. This is a place to express personal thoughts about DNNPlatform, the community and its ecosystem. Do you have useful information that you would like to share with the DNN Community in a featured article or blog? If so, please contact .

The use of the Community Blog is covered by our Community Blog Guidelines - please read before commenting or posting.


Moving a DNN Install to Microsoft Azure Websites

In my previous two posts, I have discussed Creating a new DNN install in Azure Websites, and Launching a DNN Install in Azure Websites.  This post is all about moving an existing DNN installation from some other location into Azure Websites.   This is suitable for people with an existing site, who want to move the hosting location into Azure.

Like any site migration, it’s about four basic phases:

1) Exporting the existing site database and content

2) Importing the application files and content to the new location

3) Importing the database to the new location

4) Configuring settings so it runs

The steps explained here will create a DNN install as a copy of your site in Azure Websites.  The database will be hosted on Azure SQL Database.

1. Prepare your Site for moving

There’s a couple of things to do here.  I recommend upgrading your DNN site to the very latest version available before you shift it.  I recommend this to make sure that you have all the latest features, that it’s using Azure SQL Database compatible code, and that you’ve got the latest security and performance patches.   I’m not going to cover the topics of upgrades here, but this should be your first priority.  I will remind you to make a backup of your site and database before doing anything.

The next thing I recommend is making sure your site is set to use the ‘Auto Alias Add’ feature in your site settings (at least for the main site you’re moving, if your DNN install has more than one site).  By configuring this option before you move the database, you’ll make it easier to get your site running in the new location.

This is in the Admin->Site Settings->Advanced Settings->Site Aliases section.

DNN Change Auto-Add site aliases for Azure Websites Import

I also recommend a site move as a good time to go through and clear out any old images, files and other references you don’t really need, and remove any DNN modules, skins and extensions you may no longer be using.   Giving your site a good spring-clean makes it smaller, faster and easier to migrate.

However, before you start on the process of moving the site, take the time to check that the site still runs as expected – after your upgrades, cleanups and checks.  You don’t want to troubleshoot why a site is not running in a new environment.  So be sure to get it running well before starting the move.

You might do this in a local installation of your site on your local machine, or you might do it in-place on your site.

2. Export your existing database

You’ll need access to SQL Server Management studio to complete this action.    If you don’t have access to this, you may need to ask for help from your existing provider of database hosting.   You need to export your database into a .bacpac format.   This is a different step from creation a backup (.bak) of your database.   Azure SQL Database can’t restore a database from a .bak file, and can only import a .bacpac file.   I really recommend taking your existing site offline while you do this (so that the database doesn’t change during the process) – but you may not have that option.  This process assumes that you are moving the site completely and you won’t have to perform a future data merge – which would be the case if your old site was still online and still taking order or user cotnributions.

To create one of these, connect to your existing DNN Database using SQL Management Studio, then right-click on your database, and choose Tasks->Export Data-tier Application

This brings  up a wizard, which will prompt you for the database to export, and a location to export it to.  Use a file name of [yourdatabase].bacpac and save it somewhere on your local computer you can easily find again. The export will run for a while, creating an exported version of the database structure.

3.  Create a new Azure Website

This part is easy – in your Azure Management console, click on ‘+ New’ and create a new Website using ‘Quick Create’.  This creates an empty Azure Website.

Create new Azure Website

Choose the region that makes the most sense for your audience, and note down which region you have created it in – all your other Azure resources for this installation should be in the same region.

4. Import your database

Once you have your .bacpac file of your exported database, it’s time to import that into Azure.   Each Azure SQL Database lives in a ‘Server’ – which is really just a logical container for your database, rather than any actual physical server.   If you already have an Azure Database Server created, you can skip the next piece.  If you don’t, you’ll need to create one.  This is very simple – just click on the ‘SQL Databases’ section of your site, and then on the ‘Servers’ section, and then on the ‘+ Add’ button at the bottom of the screen. 

Azure SQL Databases  SQL Database Servers

This will bring up the Server add window, which allows you to provide the server username and password to use.  Note that you don’t get to pick the server name – that will be allocated for you.

You can choose whichever Username / password combination you like, and choose which Azure Region your server should be in.  Note that you must always create your server in the same region as your Azure Website.

Once you have created your server (or have identified an existing server to use), then you can connect to that server using SQL Server Management Studio, and import your database.

To connect, open up a new Server Connection in SQL Server Management studio.  The server name is the [servername].database.windows.net – and is available on port 1433.  The username/password are the same as you have just created – the username should be [username]@[servername] as shown below:

https://www.dnnsoftware.com/Portals/0/Users/161/61/230561/dnn-waws-3/connect-to-azure-sql-server-dialog.jpg

If you haven’t yet added your local IP Address to the firewall for the server, you’ll see an error like below:

To fix this, go back to the Azure Management Portal, and click on the server, then ‘Configure’, which shows the IP Address management screen:

Azure SQL Database IP Address firewall

Add your IP Address to the list of allowed, and click on the ‘Save’ icon at the bottom of the page.

You should then be able to connect to the Server using SQL Server Management Studio.   Right click the ‘Databases’ icon and choose ‘Import Data Tier Application’:

This brings up the wizard, which you can follow to import the database you exported.

Importing Data Tier Application for importing DNN Database to Azure

Following the wizard completes the import:

Import Data Tier Application Step 2 - DNN Importing SQL Azure

Once the import completes (this will take a few minutes), you can then link the database as a resource to your Azure Website.   You can do this through the Websites – ‘Linked Resources’ menu option.  Use the ‘Link’ option to link the database to the Azure Website by choosing to link an existing resource.

Note : It is possible to achieve this without using SQL Server Management studio.  Using that method, you must first create an Azure Storage account, then upload the .bacpac file to an Azure Storage container.  From there you can use the built-in management tools within the Azure Management console to import the database from the Storage account.  This method hasn’t been covered in this example.

4. Download your publish profile

Now that you have your website and your database configured, you’re ready to download your publish profile.  This is an xml file with connection strings, passwords and other credentials.  You’ll use this to connect via FTP, and to configure your database connection string.

Downloading your publish profile is done by going to the ‘Dashboard’ view of your Azure Website in the Windows Azure Management console.

When you download the file, it has a .settings file extension, which is unlikely to be associated with any application on your local computer.  You can open this up with any text editor, or any editor that will display text/XML files.

5. Update the database connection string in your web.config file.

When you open the publish settings file, you’ll see a database connection string.  Search for ‘SQLServerDBConnectionString’ within the publish settings file.  When you find it, copy this entire connection string into the ‘SiteSqlServer’ connection string values within your DNN web.config file (remember, for most DNN Installs there are two locations for this file).   This is in preparation for uploading the file to your site, so that when the site runs, it will connect to your Azure SQL Database rather than the existing SQL Database.

6. Upload your files to the site

There are several ways to push content to Azure Websites.   I prefer using FTP because it’s old skool and always works.  There are other options, but I’m going to describe how to use FTP using FileZilla.

Normally what people might do is create a compressed file of their existing file contents, and send up the zip file, and then expand it.  In this case, we aren’t going to do that because we don’t have the file compression tools to work with at the destination.   So I just FTP up the entire site contents, file-by-file.   It’s not the fastest but it certainly is thorough.

To connect, find the FTP connection details in the Publish Settings file.  This includes the FTP connection address, the username and the password.  Enter these details in FileZilla (or similar) and connect.  This should operate correctly and show the structure of the FTP publish location.   This is the file storage of your site.

Upload from your computer to the Azure websites location – all of your DNN files and content.  The files should be transferred into the /Site/wwwroot location.

Upload DNN Azure Website FTP Connection

7. Browse your site

Your site will be accessible on the public URL as shown in the Azure Websites dashboard, under ‘Site URL’.   As long as you set the ‘Auto Alias Add’ option earlier in the procedure, then the site should load as expected.    If this is not working (usually you will see a 404 error) you will have to manually insert Site Alias records into the PortalAlias  table – specifically the [sitename].azurewebsites.net domain name to get the site running on the temp domain name.

8.  Complete the configuration for the launch.

Your site is now up an running, but not answering to your domain name.  You may also have to change some of the SMTP settings and other configurations.  Launching the site is covered under the prior blog post Launching a DNN Site on Microsoft Azure Websites.

Note that when you are finished, you should go back in and switch off the ‘Auto Alias Add’ option again, to prevent accidental creation of domain names.

Comments?

Please let me know if there are missing steps or a particular step causes issues in practice.   While the process seems complicated upon first reading, it’s really much simpler than most hosting migrations are.  Feel free to share your newly migrated site!

Comments

Jay Mathis
Thanks for the excellent article Bruce.

There is a small hole in the process outlined above. If you follow those steps exactly, the website's publish profile won't know anything about the DB connection strings, so that will be blank. However, you can also get the DB connection strings from the DB section of the Azure management portal.

One more thing, if may be useful to talk about Azure's recent changes of adding Resource Groups and Web Hosting Plans as the steps above will have changed slightly. And I still don't really fully understand the difference between Resource Groups and Web Hosting Plans... The documentation on it needs to be read remembering that DNN is a multi-tenant application and when Azure says "Website", that really means a DNN installation, which could actually host many websites.
Jay Mathis Thursday, April 24, 2014 1:46 PM (link)
Bruce Chapman
@Jay - if you link your DB through the linked resources, then the DB Connection string should be available in the publish settings.

Perhaps I'll add another post talking about the Web Hosting plans and resource groups - that is specific to how people want to set up their environments. As for DNN being a multi-tenant - you'll see the title is 'moving a DNN Install' - the terminology can be confusing but I think most people can understand the difference.
Bruce Chapman Thursday, April 24, 2014 5:27 PM (link)
Fred Abbott
Your post on creating and launching a new DNN installation worked seamlessly. But migration of an existing installation is proving rather difficult.

I am using GoDaddy hosting and Plesk. When I go to export the existing database either to a local file or to Azure storage I get a validation error (using MS SQL Management Studio 2012) which I have pasted below. It seems odd that there is an Azure validation error even when attempting to exporting to a local drive, but it will not create the .bacpac file. I have posted on MSDN so far with no luck, although various variations of this type of validation error have been discussed/reported. And, there does not appear to be a way to bypass Azure validation.

Suggestions are welcome.

Error SQL70015: Error validating element [dbo].[GetDocument]: Deprecated feature 'String literals as column aliases' is not supported
Fred Abbott Tuesday, May 6, 2014 12:50 PM (link)
Jay Mathis
@Fred

I recall having a number of similar issues with the first migration I attempted. Basically, there are some SQL things that works fine in SQL Server 2008/20012, but aren't allowed in SQL Azure for whatever reason.

There are couple things I would try:

1) First, upgrade to the latest DNN version before attempting the migration. Some of the issues will be fixed by the DNN upgrade scripts.

2) For any issues that may still exist, compare the item is question (table, script, etc.) to a clean install of the latest DNN. I was going to post what I saw for GetDocument but that doesn't exist in my SQL database which either means it might be something specific to the paid version of DNN or a third party module. If it is a third party module, you may need to get help from that module developer and request an Azure compatible version of the module.

Hope that helps!
Jay Mathis Tuesday, May 6, 2014 1:22 PM (link)
Fred Abbott
Thanks for quick response. I was already upgraded to DNN 7.2.2, so that is not the fix. Since I am running the Community edition, it is likely something with a third-party module. Some of my main modules are fairly dated (e.g. Packflash), though working fine. I will see if the various developers are planning an Azure compatible update/upgrade. Otherwise, short of redoing the entire website, I am not sure there is a realistic fix unless Microsoft comes up with some workaround. In any case, thanks for getting back to me.
Fred Abbott Tuesday, May 6, 2014 2:35 PM (link)
cathal connolly
@Fred - based on the name I'd guess it's the "old" DNN documents module that might be to blame. I'd check what version you're running as according to http://dnndocuments.codeplex.com/releases/view/82885 it's worked with Azure since the 6.0.0 release
cathal connolly Tuesday, May 6, 2014 3:44 PM (link)
Jay Mathis
@Fred - Another to check it make sure you even still need those legacy modules. A lot of times I see old modules installed than are no longer being used. As Cathal said, that looks like the old DNN documents module. Do you even still need it? If not, you could probably just uninstall it and remove all the tables and sprocs associated with it.
Jay Mathis Tuesday, May 6, 2014 3:50 PM (link)
Bruce Chapman
Even if you are using an old version - it should be pretty easy to fix. The error is that you have some SQL with a string literal as column name. This is outdated SQL syntax and deprecated as the error says.

In the GetDocuments procedure, you will find something like :
Select ColumnName = "Column Name", OtherName = "Some OtherName"

These are the string literals of the error. You can change this to:
Select ColumnName as [Column Name], OtherName as [Some Other Name]

Doing this will remove the error and won't affect the output SQL, so the module will still work as expected.

It's less about SQL Azure and more about the ability to create an export. While the SQL Server engine still tolerates the deprecated syntax, the newer utilities won't, which is why you're seeing the error.
Bruce Chapman Tuesday, May 6, 2014 5:37 PM (link)
Fred Abbott
Thanks Bruce and Jay,

I was experimenting based on Cathal's suggestion as you were writing, and you will see my response to her. Long story shorter, I agree that deleting unused modules, and updating where possible will resolve part of the problem.

I was able to generate "new errors" by fixing old ones, but they seem to suggest that some of my key third-party modules are not Azure compatible -- or as you put it, will not allow me to create an export file. As a practical matter, that amounts to the same thing if I cannot transition the website.

I very much appreciate your efforts on this. But, I should let you off the hook now :)

Fred Abbott Tuesday, May 6, 2014 6:07 PM (link)
Rodney Joyce
Thanks for the post Bruce, this is a slightly different way than the way I ended up doing it. Since moving PokerDIY off PowerDNN (Dedicated Server costing $160 a month) onto Azure (Free with MSDN credits) my Google Analytics are showing a 40% increase in PageSpeed - ie. 40% faster for a lot less of the cost. Maintenance is a breeze as there is none ;) I have backup set to post to my Azure Storage Containters and PokerDIY is nippier than ever - all for free! I will be posting a blog post on the details later - if you are running DotNetNuke and you have an MSDN subscription then you are crazy not migrating to Azure ;)
Rodney Joyce Friday, May 16, 2014 6:38 PM (link)
Bruce Chapman
@Rodney - glad to see you're having real-world success. Azure Websites is a way to get access to lots of resources at not much cost to your own resources. I have been doing a lot of work on this lately and with Visual Studio online - I have a lot more posts to publish. Really, as I have stated elsewhere, Azure Websites and DNN were made for each other. I have seen some blazing performance with the new 7.3 build and Azure Websites - even out of the box with more available using some tweaks.

@Fred - just FYI, Cathal is a 'he' :)
Bruce Chapman Monday, May 19, 2014 9:44 AM (link)
Jay Mathis
@Bruce - Can't wait to read your follow posts about Azure. I spent the weekend moving another client from a dedicated server to a Azure account, increasing their performance and saving them money.

One thing I would love to get some feedback on is the process of actually transferring the files. FTP is the go-to process, but it is certainly very inefficient to move files one by one via FTP and for a large existing installation, it can take all day to FTP the files even with a large bandwidth due to the file checking process within Windows. I discovered that you can actually open a command shell (DOS like prompt) within the Azure website and "unzip" is an available command. I played around it and discovered you can actually FTP a zip file and use this command to unzip the file in place saving a bunch of time. However, unfortunately, it seems to have either some file size limitation or perhaps an execution timeout, as when I tried to unzip a 150MB file, I got a "Bad Request" error after about a minute of waiting. I would love to hear if anyone has any experience with this method or knows of a better, more efficient method of copy an existing DNN installation without using FTP to move files individually.

Jay Mathis Monday, May 19, 2014 10:35 AM (link)
Bruce Chapman
@Jay - yes, I've been doing work with using Visual Studio Online (command line) for the purposes of running DNN upgrades - you can't use the FTP method because of the time lag. I hadn't yet come across any 150mb limit, but this would be worked around by having multiple zip files. This method works well.

I'll publish this in a guide for upgrading DNN within Azure Websites when DNN 7.3 is released (or maybe a bit before).
Bruce Chapman Monday, May 19, 2014 6:21 PM (link)
Daniel Comp
I'm planning a move for a multi-portal existing installation. There is 10G worth of files. Hmmm. FTP zipped pieces? Not sounding good. This is a warm-up for several LARGE multi-portal installations. Does anyone have suggestions?
Daniel Comp Tuesday, November 11, 2014 5:51 PM (link)
Jay Mathis
I discovered a little documented feature that works great.
Once you have your Azure website set up, try going to yoursite.scm.azurewebsites.net.
This is an admin panel with a lot of useful tools. One is a file system that has an unzip command.

So, the trick is to zip up your installation, FTP the one single file over, and then unzip it on the server. I'd had to try it a couple of times to get the directory structure right because the the location of the files when you are zipping up and unzip matters, so you might want to play around with a test directory to see where the files will end up, but it works great and is way faster than using FTP to move all the files over one by one.

Jay Mathis Tuesday, November 11, 2014 10:32 PM (link)
Jay Mathis
http://azure.microsoft.com/blog/2014/03/04/windows-azure-websites-online-tools-you-should-know-about/
Jay Mathis Tuesday, November 11, 2014 10:34 PM (link)
Bruce Chapman
@Daniel Jay is talking about Kudu - which is available on the yoursite.scm.azurewebsites.net domain - you can also access process information and other important data. You can also use Visual Studio online- which is available at yoursite.scm.azurewebsites.net/dev - but only after you enable it in the azure websites configuration page in the azure portal. With either you can indeed use the unzip command to unzip all your files after uploading a single package. Visual Studio online also allows you to directly edit and modify the files in the browser, which is extremely powerful, if a little scary.

I always use the Visual Studio online tool combined with a zip package to move installations (and updates) to the site. If you're dealing with a running site, you can find it won't unzip if a file is locked - the way around this is to unzip to a temp directory, then use copy to move the files to the destination - xcopy will overcome file locking where the unzip utility will not.

Frustratingly, there is no accompanying 'zip' utility.
Bruce Chapman Tuesday, November 11, 2014 11:14 PM (link)
Benjamin Ramsay
Great article, thanks a lot! What I am trying to do is similar: move a DNN website from one region in Azure to another. So I did almost the same steps, except to copy the database I did not export/import using a .bacpac file. I just used the "Copy" button within the Azure Management Portal. That seemed to work fine, and made a copy of my DNN site's database on the new server (in the new region where I want it.)

After completing all the other steps in your article, my new copy of the site launches, but with a bunch of weird problems. The first and most important is that my DNN host login no longer works. I tried the default host login too, but no luck there either. Any thoughts on what might cause that?

Thanks
Benjamin Ramsay Wednesday, December 10, 2014 5:42 PM (link)
Jay Mathis
Passwords in DNN are encrypted using the machinekey value found in the web.config. It almost sounds like perhaps the machinekey got changed somehow when moving.

One thing you can do in an emergency, is to just create a new normal user. Then, go into the Users table directly and there is a flag called IsSuperUser. Just check that and you should have host level access again. Of course, this won't fix any of your existing registered users, but at least you'll be able to admin the site.
Jay Mathis Thursday, December 11, 2014 7:40 AM (link)
Benjamin Ramsay
Thanks for the suggestion. Creating a new user and promoting it to superuser got me in. For some reason the site skin layout is all messed up in the new copy. Spacing weird, and entire panes of the skin missing. I'll get help from the skin designer on that though.

Thanks again!
Benjamin Ramsay Thursday, December 11, 2014 12:58 PM (link)
Marc Van Camp
Hi,
I followed your article, and did some corrections (original database on SQL Server 2005 and old version of DNN 5.2.1) and was able to move it successfully to Azure. I have no problems logging in with a superuser or admin account, but user accounts are not able to log on. I've checked the machine and decryption key in the web.config, they are the same as on the original installation. Any other thoughts which may cause this problem?

Many thanks in advance.
Marc Van Camp Tuesday, December 23, 2014 1:43 PM (link)
Asif Ansari
I am really thanks for this article.
This article is very good as I was looking the dnn migration on Azure. The publish.setting file is very useful to manage connection into SQL and FTP.
Asif Ansari Friday, April 3, 2015 9:36 AM (link)
Robert Hanson
I get the following errors [same error, many times...] No .bacpac generated:

TITLE: Microsoft SQL Server Management Studio
------------------------------

One or more unsupported elements were found in the schema used as part of a data package.
Error SQL71564: The element Filegroup: [ftfg_ind0825601270164] is not supported when used as part of a data package (bacpac).
[snippped]
Error SQL71564: Table Table: [dbo].[Portals] does not have a clustered index. Clustered indexes are required for inserting data in this version of SQL Server.
(Microsoft.SqlServer.Dac)
Robert Hanson Monday, April 6, 2015 8:44 AM (link)
Jay Mathis
I recommend using this migration wizard I found:
https://sqlazuremw.codeplex.com/

It will find and fix all these issues and move tables/data between Azure and a local SQL instance.
Jay Mathis Monday, April 6, 2015 9:28 AM (link)
Bruce Chapman
@Robert I snipped your comment as code dumps in blog comments aren't readable. Please create a Q&A question in the answers page for specific help with an issue like that. As Jay has mentioned, try using the SQL Migration tool to help in resolving these issues.
Bruce Chapman Monday, April 6, 2015 6:40 PM (link)
Tareq Mahmud
Azure changed many things and migrating changed quite a bit. After 2 days of pain now all I get is error 500. I had to change many many table before I could create bacpac file and import the database in Azure. I am not sure what yet but I believe many changes are needed in web.cofig file FOR dnn to work on azure.

Also for those who who wants to migrate to Azure. I would say the support is pretty bad and have to buy support separately. In my case it was even worse I purchased support but still did not get any help from MS Azure looks like the support I purchased disappeared from Azure Help Desk. I have decided to abandon Azure as it seems either DNN or Azure has a long way to go before everything would work properly.
Tareq Mahmud Friday, December 18, 2015 10:09 AM (link)
Bruce Chapman
@Tareq - it's true that the Azure Portal (http://portal.azure.com/) has a new interface, the concepts are the same.

It's not true at all that Dnn or Azure has a long way to go to work properly - DNN has created thousands and thousands of trials using Azure. Lots of people are running Dnn and Evoq installations on Azure and are experiencing the benefits. Like anything else it's all in how you set it up. You don't need to change anything special in the web.config, unless you have extra components installed which might need changes. A plain-vanilla DNN install will work without any changes to the web.config (as shown in the post).

It is true that you have to purchase support separately for Azure. If you need full-service support as you might with a traditional hosting provider, then you should consider that when making a hosting decision. By separating the support cost out of the resources cost, Azure (and AWS) allows you to purchase the right amount for your needs.

I would guess that the issues you have are related to importing some incompatible database tables created on top of the Dnn installation. Dnn itself has been Azure-compatible since 6.x. To solve your 500 errors, you'd need to look at the various event logs to determine what the error is caused by.
Bruce Chapman Monday, December 21, 2015 8:47 PM (link)
damien burdo
Can you announce to us the day one you will return available DNN 8 in the CMS gallery's of window azure. I am waiting for it to test it.
damien from france
damien@burdo.fr
damien burdo Saturday, January 23, 2016 5:28 AM (link)
Michael Durthaler
I didn't read through all comments but a gotcha that comes up is this error: "Deprecated feature 'String literals as column aliases' is not supported on SQL Azure." The fix is in a DNN Wiki here: http://www.dnnsoftware.com/wiki/deprecated-feature-string-literals-as-column-aliases-is-not-supported-in-this-version-of-sql-server.

Because we are using Catalook, there were 54 of instances of this error that came up, 53 were Catalook but one is DNN. The DNN drop and create SQL for the FAQGet SPROC is here. The old code is commented out just above the new code.

I've been in touch off and on with the developer for Catalook so I'm going to send him a zip of the Catalook SPROCs. He's saved my bacon at no charge a bunch of times with the modifications I've needed so helping with 53 of his SPROCs only part way returns the favor. :)

/****** Object: StoredProcedure [dbo].[FAQGet] Script Date: 5/9/2016 12:29:00 ******/
DROP PROCEDURE [dbo].[FAQGet]
GO

/****** Object: StoredProcedure [dbo].[FAQGet] Script Date: 5/9/2016 12:29:00 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

/* -------------------------------------------------------------------------------------
/ Get
/ ------------------------------------------------------------------------------------- */

CREATE PROCEDURE [dbo].[FAQGet]
(
@ItemId int,
@ModuleId int
)
AS
SELECT
f.ItemID,
f.ModuleID,
f.CategoryId,
f.Question,
f.Answer,
-- 'CreatedByUserName' = Users.FirstName + ' ' + Users.LastName,
Users.FirstName + ' ' + Users.LastName AS CreatedByUserName,
f.CreatedDate,
f.DateModified,
f.ViewCount,
c.FaqCategoryName,
c.FaqCategoryDescription

FROM FAQs f
left outer join FAQsCategory c on f.CategoryId = c.FaqCategoryId
left outer join Users on f.CreatedByUser = Users.UserId
where f.ModuleId = @ModuleId and
f.ItemId = @ItemId
GO

Michael Durthaler Monday, May 9, 2016 12:35 PM (link)

Comment Form

Only registered users may post comments.

NewsArchives


Aderson Oliveira (22)
Alec Whittington (11)
Alessandra Daniels (3)
Alex Shirley (10)
Andrew Hoefling (3)
Andrew Nurse (30)
Andy Tryba (1)
Anthony Glenwright (5)
Antonio Chagoury (28)
Ash Prasad (37)
Ben Schmidt (1)
Benjamin Hermann (25)
Benoit Sarton (9)
Beth Firebaugh (12)
Bill Walker (36)
Bob Kruger (5)
Bogdan Litescu (1)
Brian Dukes (2)
Brice Snow (1)
Bruce Chapman (20)
Bryan Andrews (1)
cathal connolly (55)
Charles Nurse (163)
Chris Hammond (213)
Chris Paterra (55)
Clint Patterson (108)
Cuong Dang (21)
Daniel Bartholomew (2)
Daniel Mettler (181)
Daniel Valadas (48)
Dave Buckner (2)
David Poindexter (12)
David Rodriguez (3)
Dennis Shiao (1)
Doug Howell (11)
Erik van Ballegoij (30)
Ernst Peter Tamminga (80)
Francisco Perez Andres (17)
Geoff Barlow (12)
George Alatrash (12)
Gifford Watkins (3)
Gilles Le Pigocher (3)
Ian Robinson (7)
Israel Martinez (17)
Jan Blomquist (2)
Jan Jonas (3)
Jaspreet Bhatia (1)
Jenni Merrifield (6)
Joe Brinkman (274)
John Mitchell (1)
Jon Henning (14)
Jonathan Sheely (4)
Jordan Coopersmith (1)
Joseph Craig (2)
Kan Ma (1)
Keivan Beigi (3)
Kelly Ford (4)
Ken Grierson (10)
Kevin Schreiner (6)
Leigh Pointer (31)
Lorraine Young (60)
Malik Khan (1)
Matt Rutledge (2)
Matthias Schlomann (16)
Mauricio Márquez (5)
Michael Doxsey (7)
Michael Tobisch (3)
Michael Washington (202)
Miguel Gatmaytan (3)
Mike Horton (19)
Mitchel Sellers (40)
Nathan Rover (3)
Navin V Nagiah (14)
Néstor Sánchez (31)
Nik Kalyani (14)
Oliver Hine (1)
Patricio F. Salinas (1)
Patrick Ryan (1)
Peter Donker (54)
Philip Beadle (135)
Philipp Becker (4)
Richard Dumas (22)
Robert J Collins (5)
Roger Selwyn (8)
Ruben Lopez (1)
Ryan Martinez (1)
Sacha Trauwaen (1)
Salar Golestanian (4)
Sanjay Mehrotra (9)
Scott McCulloch (1)
Scott Schlesier (11)
Scott Wilkinson (3)
Scott Willhite (97)
Sebastian Leupold (80)
Shaun Walker (237)
Shawn Mehaffie (17)
Stefan Cullmann (12)
Stefan Kamphuis (12)
Steve Fabian (31)
Steven Fisher (1)
Tony Henrich (3)
Torsten Weggen (3)
Tycho de Waard (4)
Vicenç Masanas (27)
Vincent Nguyen (3)
Vitaly Kozadayev (6)
Will Morgenweck (40)
Will Strohl (180)
William Severance (5)
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out