| In my previous post, “XML Result sets with SQL Server”, we review to generate result sets in XML from SQL server. Then I got a comment from the team, to also have post to read XML in SQL Server. To read XML in SQL server, is also simple. Lets read the XML which is created by XML PATH in previous post. Read XML Elements with T-SQL: DECLARE @SQLYoga TABLE( DECLARE @xml XML Now, please find query to read the query to read XML generated above: SELECT x.v.value('ID[1]', 'INT') AS ID, This query generates the output as follows: That’s it. It is much simple and you can get rid of the complex coding in application. Let me know your comments or issues you are facing while working on this. Reference: Tejas Shah (www.SQLYoga.com) |
SQL Yoga
This blog is for SQL SERVER developers. Here I am trying to share my experience with all people. This blog contains my thoughts that might help the people
May 6, 2013
SQL Yoga – Read XML with T-SQL statement in SQL SERVER
May 3, 2013
SQLYoga – XML Result sets with SQL Server
| Recently, found that people making much complex code to have an XML in application. I have found that they return result set in Table to the application and have applied code to convert that data table to XML by Asp. Net application. When I review the process, I have suggested that why don’t you use the XML feature of the application. They surprised the simple use of it and make their life easy. Let me have sample query to generate XML result sets in SQL Server database. There are two ways to have an XML from query: 1. FOR XML RAW 2. FOR XML PATH Please find following sample queries where both of the way are being used: Lets create sample data DECLARE @SQLYoga TABLE( Generate XML with XML ROW SELECT * XML RAW, returns the XML by each record with row element and all columns as attributes in the XML. Generate XML with XML PATH SELECT * XML PATH, returns the XML by each record with separate element and also columns as element within respected element of the record. That’s it. It is much simple and you can get rid of the complex coding in application. Let me know your comments or issues you are facing while working on this. Reference: Tejas Shah (www.SQLYoga.com) |
December 24, 2012
SQL SERVER: Cross tab Query with Pivot (Dynamic Pivot)
| As I mentioned earlier, PIVOT in my earlier post, where we have reviewed the PIVOT with static columns. In practical world, we may need to have dynamic columns that needs to be displayed as below: As Mentioned in Image, Here, dates are dynamic, based on Order Date, 10/25,10/26,10/27,10/28 etc..To achieve the same with Dynamic columns please find query for the same: CREATE TABLE #TestTable(ctrl_no INT, id int, Amount NUMERIC(18,2), OrderDate DATE) INSERT INTO #TestTable(ctrl_no , id , Amount , OrderDate )
DECLARE @MinDate DATE, @MaxDate DATE
WHILE @MinDate <= @MaxDate SELECT @Dates = LEFT(@Dates,LEN(@Dates)-1) DECLARE @qry NVARCHAR(MAX) SELECT id, EXEC (@qry) DROP TABLE #TestTable Let me know if you have any question/comment. Reference: Tejas Shah (www.SQLYoga.com) |
November 20, 2012
Configure SQL Reporting Service, to Access Reports using External IP With IIS 7
| Hi All, Recently I come to situation where I need to Configure Reporting services on server having configuration: Window server 2008 and IIS 7. I need to configure reports in manner, so User can access this reports thru External IP Address. I found configuration for IIS 7.0, so user can access reports externally. To able to access the reports externally, do the steps as mentioned below: 1. Create Virtual Directory in IIS 7.0 : 2. Go to Handler Mappings : 3. Double Click on "Handler Mapping". You will get screen like the given below: 4. Now see Top Right Corner: Click On "Add Managed Handler". Here you need to fill up the info like: Fill this info as: Request path: Reserved.ReportViewerWebControl.axd Thats it. Now try with External IP. You can access the reports with External IP too. |
November 5, 2012
SQL SERVER: Cross tab query with PIVOT
| We had a User group meeting for “Cross Tab Queries", where I have explained how to write PIVOT queries. Many times developer has an issue while writing query with PIVOT. Let me have a sample code for query with PIVOT keyword. PIVOT is used to transform rows to column, which gives result in such a way which can be send to the user directly. Let me take an example. We have an order table where we have each order stored in a row in a table as displayed below:
This information has to be saved in a row in relational database. When this information needs to be display it on the application, it needs to be displayed as below, so user can use this info for decision making:
Did you see the difference? how easy user can review the information. Lets see an query how to achieve the expected result with PIVOT keyword. CREATE TABLE #TestTable(ctrl_no INT, id int, Amount NUMERIC(18,2), OrderDate DATE) INSERT INTO #TestTable(ctrl_no , id , Amount , OrderDate )SELECT 1000029,100016,990.0000,'10/25/2012' UNION ALL SELECT 1000029,100018,990.0000,'10/25/2012' UNION ALL SELECT 1000029,100016,660.0000,'10/26/2012' UNION ALL SELECT 1000029,100018,660.0000,'10/26/2012' UNION ALL SELECT 1000029,206007,660.0000,'10/26/2012' UNION ALL SELECT 1000029,206007,660.0000,'10/27/2012' SELECT id,[10/25/2012],[10/26/2012],[10/27/2012] FROM ( SELECT id,Amount, OrderDate FROM #TestTable t) x PIVOT( SUM(Amount) FOR OrderDate IN([10/25/2012],[10/26/2012],[10/27/2012]) ) p DROP TABLE #TestTable Let me know if you have any question/comment. Reference: Tejas Shah (www.SQLYoga.com) | ||||||||||||||||||||||||||||||||||||||||||||
November 2, 2012
SQL SERVER: Limit memory usage of SQL SERVER
| Recently, we have found that SQL SERVER is using most of the memory on the server, due to heavy queries are running on my different teams and it freezes the whole server. Due to time constraint team doesn’t have time to optimize those queries, so we have found a way to configure SQL SERVER to not to use all available memory. We have an option to configure how much memory can be used by SQL SERVER as below: 1. Connect to the SQL SERVER instance for which we need to limit memory usage and click on properties: 2. Go to “Memory”, where you can see the memory options that can be used by SQL SERVER as below:![]() By default, SQL SERVER is using maximum server memory, so to resolve the freezing issue, we need to change it as per requirement. So SQL SERVER will use only that much memory and other processes can run in the server. Let me know your comments. Reference: Tejas Shah (http://www.SQLYoga.com) |
October 16, 2012
SQL SERVER: T-SQL to find out when database was restored
| Recently, we have found that our testing database has been restored on the server and we lost our recent work. We have to identify that at what time the database has been restored, so we can know that what are the changes need to be restored again on the database. We have found that MSDB database keeps information for each restore we have made on the server and luckily we have found the time and user we had restored the database. Let me share the simple script that I have found: Reference: Tejas Shah (http://www.SQLYoga.com) |
October 15, 2012
SQL SERVER: Clear Job History
Recently, we have implemented few jobs and we were testing the jobs. After our test runs successfully, we wanted to clear Job’s history, so we can have accurate job status. I have found following SQL to delete job’s history:
This will clear all history for the specified job. If you wanted to clear job history up to specific date, you can use following:
If you wanted to clear job history for ALL SQL jobs, you should just execute:
|
October 11, 2012
SQL SERVER: Configure notification to send an email when JOB fails
| In my previous post, T SQL to display Job history, I have mentioned to get list with the job statuses. One of my developer asked me to share, How to configure Notification to send an email when Job fails. Developers problem is, he is getting empty dropdown while configuring notification as shown in below figure: Here, This dropdown contains list of Operators, so we have to create operators to whom we can send a notification email. Its very simple to configure operator, see below: Now, we have created Operator, so, lets set it up for the job as below: Now, Mail will be send to the email specified in “ErrorEmails” operator. Note: Make sure to Configure Database email to send an email from the SQL SERVER. Reference: Tejas Shah (http://www.SQLYoga.com) |
October 10, 2012
SQL SERVER: T-SQL to display Job history
| We have multiple jobs running on the server as per the schedules. We need to have the status of the each job at the end of the day, so we can know that which jobs runs successfully and which gets failed. We have found the table, sysjobhistory, which contains history and get the list as per oyur requirements. Let me share the query:
Here, we have used “h.step_id = 0”, as we just concern about SQL server job status, we are not concerned about each step of the job. This query gives us result as follows: We have also configured, Notification email, which sends an email whenever job is getting failed. This query is used to review all job statuses together. Please let me know your comments Reference: Tejas Shah (http://www.SQLYoga.com) |
2. Go to “Memory”, where you can see the memory options that can be used by SQL SERVER as below: