<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SQL Fool &#187; bitwise</title>
	<atom:link href="http://sqlfool.com/tag/bitwise/feed/" rel="self" type="application/rss+xml" />
	<link>http://sqlfool.com</link>
	<description>Adventures in SQL Tuning - a blog for the rest of us</description>
	<lastBuildDate>Fri, 16 Jul 2010 14:34:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>View (and Disable) SQL Agent Jobs with TSQL</title>
		<link>http://sqlfool.com/2009/02/view-sql-agent-jobs-tsql/</link>
		<comments>http://sqlfool.com/2009/02/view-sql-agent-jobs-tsql/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 15:07:49 +0000</pubDate>
		<dc:creator>Michelle Ufford</dc:creator>
				<category><![CDATA[Syndication]]></category>
		<category><![CDATA[T-SQL Scripts]]></category>
		<category><![CDATA[bitwise]]></category>
		<category><![CDATA[sql agent jobs]]></category>

		<guid isPermaLink="false">http://sqlfool.com/?p=471</guid>
		<description><![CDATA[Recently, I wanted to find a list of all SQL Agent Jobs running on various servers. I was able to view this in SSMS, of course, but I wanted to be able to copy/paste and toss this into a spreadsheet. So instead of using SSMS, I wrote the script below, with significant help from the [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, I wanted to find a list of all SQL Agent Jobs running on various servers.  I was able to view this in SSMS, of course, but I wanted to be able to copy/paste and toss this into a spreadsheet.  So instead of using SSMS, I wrote the script below, with significant help from the <a href="http://msdn.microsoft.com/en-us/library/ms178644.aspx" target="_blank">sysschedules entry in BOL</a>, to show me the same information, using T-SQL.  I also include a script to disable the job, because that's just how I roll.</p>

<div class="wp_syntax"><div class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">DECLARE</span> @weekDay <span style="color: #0000FF;">TABLE</span> <span style="color: #808080;">&#40;</span>
      mask      <span style="color: #0000FF;">INT</span>
    , maskValue <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">32</span><span style="color: #808080;">&#41;</span>
<span style="color: #808080;">&#41;</span>;
&nbsp;
<span style="color: #0000FF;">INSERT</span> <span style="color: #0000FF;">INTO</span> @weekDay
<span style="color: #0000FF;">SELECT</span> <span style="color: #000;">1</span>, <span style="color: #FF0000;">'Sunday'</span>  <span style="color: #0000FF;">UNION</span> All
<span style="color: #0000FF;">SELECT</span> <span style="color: #000;">2</span>, <span style="color: #FF0000;">'Monday'</span>  <span style="color: #0000FF;">UNION</span> All
<span style="color: #0000FF;">SELECT</span> <span style="color: #000;">4</span>, <span style="color: #FF0000;">'Tuesday'</span>  <span style="color: #0000FF;">UNION</span> All
<span style="color: #0000FF;">SELECT</span> <span style="color: #000;">8</span>, <span style="color: #FF0000;">'Wednesday'</span>  <span style="color: #0000FF;">UNION</span> All
<span style="color: #0000FF;">SELECT</span> <span style="color: #000;">16</span>, <span style="color: #FF0000;">'Thursday'</span>  <span style="color: #0000FF;">UNION</span> All
<span style="color: #0000FF;">SELECT</span> <span style="color: #000;">32</span>, <span style="color: #FF0000;">'Friday'</span>  <span style="color: #0000FF;">UNION</span> All
<span style="color: #0000FF;">SELECT</span> <span style="color: #000;">64</span>, <span style="color: #FF0000;">'Saturday'</span>;
&nbsp;
<span style="color: #0000FF;">WITH</span> myCTE
<span style="color: #0000FF;">AS</span><span style="color: #808080;">&#40;</span>
    <span style="color: #0000FF;">SELECT</span> sched.<span style="color: #202020;">name</span> <span style="color: #0000FF;">AS</span> <span style="color: #FF0000;">'scheduleName'</span>
        , sched.<span style="color: #202020;">schedule_id</span>
        , jobsched.<span style="color: #202020;">job_id</span>
        , <span style="color: #0000FF;">CASE</span> <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_type</span> <span style="color: #808080;">=</span> <span style="color: #000;">1</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">'Once'</span> 
            <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_type</span> <span style="color: #808080;">=</span> <span style="color: #000;">4</span> 
                And sched.<span style="color: #202020;">freq_interval</span> <span style="color: #808080;">=</span> <span style="color: #000;">1</span> 
                    <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">'Daily'</span>
            <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_type</span> <span style="color: #808080;">=</span> <span style="color: #000;">4</span> 
                <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">'Every '</span> <span style="color: #808080;">+</span> <span style="color: #0000FF;">CAST</span><span style="color: #808080;">&#40;</span>sched.<span style="color: #202020;">freq_interval</span> <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">5</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">+</span> <span style="color: #FF0000;">' days'</span>
            <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_type</span> <span style="color: #808080;">=</span> <span style="color: #000;">8</span> <span style="color: #0000FF;">THEN</span> 
                <span style="color: #FF00FF;">REPLACE</span><span style="color: #808080;">&#40;</span> <span style="color: #FF00FF;">REPLACE</span><span style="color: #808080;">&#40;</span> <span style="color: #FF00FF;">REPLACE</span><span style="color: #808080;">&#40;</span><span style="color: #808080;">&#40;</span> 
                    <span style="color: #0000FF;">SELECT</span> maskValue 
                    <span style="color: #0000FF;">FROM</span> @weekDay <span style="color: #0000FF;">AS</span> x 
                    <span style="color: #0000FF;">WHERE</span> sched.<span style="color: #202020;">freq_interval</span> <span style="color: #808080;">&amp;</span> x.<span style="color: #202020;">mask</span> <span style="color: #808080;">&lt;&gt;</span> <span style="color: #000;">0</span> 
                    <span style="color: #0000FF;">ORDER</span> <span style="color: #0000FF;">BY</span> mask <span style="color: #0000FF;">FOR</span> XML Raw<span style="color: #808080;">&#41;</span>
                , <span style="color: #FF0000;">'&quot;/&gt;&lt;row maskValue=&quot;'</span>, <span style="color: #FF0000;">', '</span><span style="color: #808080;">&#41;</span>, <span style="color: #FF0000;">'&lt;row maskValue=&quot;'</span>, <span style="color: #FF0000;">''</span><span style="color: #808080;">&#41;</span>, <span style="color: #FF0000;">'&quot;/&gt;'</span>, <span style="color: #FF0000;">''</span><span style="color: #808080;">&#41;</span> 
                <span style="color: #808080;">+</span> <span style="color: #0000FF;">CASE</span> <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_recurrence_factor</span> <span style="color: #808080;">&lt;&gt;</span> <span style="color: #000;">0</span> 
                        And sched.<span style="color: #202020;">freq_recurrence_factor</span> <span style="color: #808080;">=</span> <span style="color: #000;">1</span> 
                            <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">'; weekly'</span> 
                    <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_recurrence_factor</span> <span style="color: #808080;">&lt;&gt;</span> <span style="color: #000;">0</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">'; every '</span> 
                <span style="color: #808080;">+</span> <span style="color: #0000FF;">CAST</span><span style="color: #808080;">&#40;</span>sched.<span style="color: #202020;">freq_recurrence_factor</span> <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">10</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">+</span> <span style="color: #FF0000;">' weeks'</span> <span style="color: #0000FF;">END</span>
            <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_type</span> <span style="color: #808080;">=</span> <span style="color: #000;">16</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">'On day '</span> 
                <span style="color: #808080;">+</span> <span style="color: #0000FF;">CAST</span><span style="color: #808080;">&#40;</span>sched.<span style="color: #202020;">freq_interval</span> <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">10</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">+</span> <span style="color: #FF0000;">' of every '</span>
                <span style="color: #808080;">+</span> <span style="color: #0000FF;">CAST</span><span style="color: #808080;">&#40;</span>sched.<span style="color: #202020;">freq_recurrence_factor</span> <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">10</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">+</span> <span style="color: #FF0000;">' months'</span> 
            <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_type</span> <span style="color: #808080;">=</span> <span style="color: #000;">32</span> <span style="color: #0000FF;">THEN</span> 
                <span style="color: #0000FF;">CASE</span> <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_relative_interval</span> <span style="color: #808080;">=</span> <span style="color: #000;">1</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">'First'</span>
                    <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_relative_interval</span> <span style="color: #808080;">=</span> <span style="color: #000;">2</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">'Second'</span>
                    <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_relative_interval</span> <span style="color: #808080;">=</span> <span style="color: #000;">4</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">'Third'</span>
                    <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_relative_interval</span> <span style="color: #808080;">=</span> <span style="color: #000;">8</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">'Fourth'</span>
                    <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_relative_interval</span> <span style="color: #808080;">=</span> <span style="color: #000;">16</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">'Last'</span>
                <span style="color: #0000FF;">END</span> <span style="color: #808080;">+</span> 
                <span style="color: #0000FF;">CASE</span> <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_interval</span> <span style="color: #808080;">=</span> <span style="color: #000;">1</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">' Sunday'</span>
                    <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_interval</span> <span style="color: #808080;">=</span> <span style="color: #000;">2</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">' Monday'</span>
                    <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_interval</span> <span style="color: #808080;">=</span> <span style="color: #000;">3</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">' Tuesday'</span>
                    <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_interval</span> <span style="color: #808080;">=</span> <span style="color: #000;">4</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">' Wednesday'</span>
                    <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_interval</span> <span style="color: #808080;">=</span> <span style="color: #000;">5</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">' Thursday'</span>
                    <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_interval</span> <span style="color: #808080;">=</span> <span style="color: #000;">6</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">' Friday'</span>
                    <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_interval</span> <span style="color: #808080;">=</span> <span style="color: #000;">7</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">' Saturday'</span>
                    <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_interval</span> <span style="color: #808080;">=</span> <span style="color: #000;">8</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">' Day'</span>
                    <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_interval</span> <span style="color: #808080;">=</span> <span style="color: #000;">9</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">' Weekday'</span>
                    <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_interval</span> <span style="color: #808080;">=</span> <span style="color: #000;">10</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">' Weekend'</span>
                <span style="color: #0000FF;">END</span>
                <span style="color: #808080;">+</span> <span style="color: #0000FF;">CASE</span> <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_recurrence_factor</span> <span style="color: #808080;">&lt;&gt;</span> <span style="color: #000;">0</span> 
                        And sched.<span style="color: #202020;">freq_recurrence_factor</span> <span style="color: #808080;">=</span> <span style="color: #000;">1</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">'; monthly'</span>
                    <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_recurrence_factor</span> <span style="color: #808080;">&lt;&gt;</span> <span style="color: #000;">0</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">'; every '</span> 
                <span style="color: #808080;">+</span> <span style="color: #0000FF;">CAST</span><span style="color: #808080;">&#40;</span>sched.<span style="color: #202020;">freq_recurrence_factor</span> <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">10</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">+</span> <span style="color: #FF0000;">' months'</span> <span style="color: #0000FF;">END</span>
            <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_type</span> <span style="color: #808080;">=</span> <span style="color: #000;">64</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">'StartUp'</span>
            <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_type</span> <span style="color: #808080;">=</span> <span style="color: #000;">128</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">'Idle'</span>
          <span style="color: #0000FF;">END</span> <span style="color: #0000FF;">AS</span> <span style="color: #FF0000;">'frequency'</span>
        , IsNull<span style="color: #808080;">&#40;</span><span style="color: #FF0000;">'Every '</span> <span style="color: #808080;">+</span> <span style="color: #0000FF;">CAST</span><span style="color: #808080;">&#40;</span>sched.<span style="color: #202020;">freq_subday_interval</span> <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">10</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">+</span> 
            <span style="color: #0000FF;">CASE</span> <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_subday_type</span> <span style="color: #808080;">=</span> <span style="color: #000;">2</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">' seconds'</span>
                <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_subday_type</span> <span style="color: #808080;">=</span> <span style="color: #000;">4</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">' minutes'</span>
                <span style="color: #0000FF;">WHEN</span> sched.<span style="color: #202020;">freq_subday_type</span> <span style="color: #808080;">=</span> <span style="color: #000;">8</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">' hours'</span>
            <span style="color: #0000FF;">END</span>, <span style="color: #FF0000;">'Once'</span><span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">AS</span> <span style="color: #FF0000;">'subFrequency'</span>
        , <span style="color: #FF00FF;">REPLICATE</span><span style="color: #808080;">&#40;</span><span style="color: #FF0000;">'0'</span>, <span style="color: #000;">6</span> <span style="color: #808080;">-</span> <span style="color: #FF00FF;">LEN</span><span style="color: #808080;">&#40;</span>sched.<span style="color: #202020;">active_start_time</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span> 
            <span style="color: #808080;">+</span> <span style="color: #0000FF;">CAST</span><span style="color: #808080;">&#40;</span>sched.<span style="color: #202020;">active_start_time</span> <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">6</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">AS</span> <span style="color: #FF0000;">'startTime'</span>
        , <span style="color: #FF00FF;">REPLICATE</span><span style="color: #808080;">&#40;</span><span style="color: #FF0000;">'0'</span>, <span style="color: #000;">6</span> <span style="color: #808080;">-</span> <span style="color: #FF00FF;">LEN</span><span style="color: #808080;">&#40;</span>sched.<span style="color: #202020;">active_end_time</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span> 
            <span style="color: #808080;">+</span> <span style="color: #0000FF;">CAST</span><span style="color: #808080;">&#40;</span>sched.<span style="color: #202020;">active_end_time</span> <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">6</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">AS</span> <span style="color: #FF0000;">'endTime'</span>
        , <span style="color: #FF00FF;">REPLICATE</span><span style="color: #808080;">&#40;</span><span style="color: #FF0000;">'0'</span>, <span style="color: #000;">6</span> <span style="color: #808080;">-</span> <span style="color: #FF00FF;">LEN</span><span style="color: #808080;">&#40;</span>jobsched.<span style="color: #202020;">next_run_time</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span> 
            <span style="color: #808080;">+</span> <span style="color: #0000FF;">CAST</span><span style="color: #808080;">&#40;</span>jobsched.<span style="color: #202020;">next_run_time</span> <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">6</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">AS</span> <span style="color: #FF0000;">'nextRunTime'</span>
        , <span style="color: #0000FF;">CAST</span><span style="color: #808080;">&#40;</span>jobsched.<span style="color: #202020;">next_run_date</span> <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">CHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">8</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">AS</span> <span style="color: #FF0000;">'nextRunDate'</span>
    <span style="color: #0000FF;">FROM</span> msdb.<span style="color: #202020;">dbo</span>.<span style="color: #202020;">sysschedules</span> <span style="color: #0000FF;">AS</span> sched
    Join msdb.<span style="color: #202020;">dbo</span>.<span style="color: #202020;">sysjobschedules</span> <span style="color: #0000FF;">AS</span> jobsched
        <span style="color: #0000FF;">ON</span> sched.<span style="color: #202020;">schedule_id</span> <span style="color: #808080;">=</span> jobsched.<span style="color: #202020;">schedule_id</span>
    <span style="color: #0000FF;">WHERE</span> sched.<span style="color: #202020;">enabled</span> <span style="color: #808080;">=</span> <span style="color: #000;">1</span>
<span style="color: #808080;">&#41;</span>
&nbsp;
<span style="color: #0000FF;">SELECT</span> job.<span style="color: #202020;">name</span> <span style="color: #0000FF;">AS</span> <span style="color: #FF0000;">'jobName'</span>
    , sched.<span style="color: #202020;">scheduleName</span>
    , sched.<span style="color: #202020;">frequency</span>
    , sched.<span style="color: #202020;">subFrequency</span>
    , <span style="color: #FF00FF;">SUBSTRING</span><span style="color: #808080;">&#40;</span>sched.<span style="color: #202020;">startTime</span>, <span style="color: #000;">1</span>, <span style="color: #000;">2</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">+</span> <span style="color: #FF0000;">':'</span> 
        <span style="color: #808080;">+</span> <span style="color: #FF00FF;">SUBSTRING</span><span style="color: #808080;">&#40;</span>sched.<span style="color: #202020;">startTime</span>, <span style="color: #000;">3</span>, <span style="color: #000;">2</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">+</span> <span style="color: #FF0000;">' - '</span> 
        <span style="color: #808080;">+</span> <span style="color: #FF00FF;">SUBSTRING</span><span style="color: #808080;">&#40;</span>sched.<span style="color: #202020;">endTime</span>, <span style="color: #000;">1</span>, <span style="color: #000;">2</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">+</span> <span style="color: #FF0000;">':'</span> 
        <span style="color: #808080;">+</span> <span style="color: #FF00FF;">SUBSTRING</span><span style="color: #808080;">&#40;</span>sched.<span style="color: #202020;">endTime</span>, <span style="color: #000;">3</span>, <span style="color: #000;">2</span><span style="color: #808080;">&#41;</span> 
        <span style="color: #0000FF;">AS</span> <span style="color: #FF0000;">'scheduleTime'</span> <span style="color: #008080;">-- HH:MM</span>
    , <span style="color: #FF00FF;">SUBSTRING</span><span style="color: #808080;">&#40;</span>sched.<span style="color: #202020;">nextRunDate</span>, <span style="color: #000;">1</span>, <span style="color: #000;">4</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">+</span> <span style="color: #FF0000;">'/'</span> 
        <span style="color: #808080;">+</span> <span style="color: #FF00FF;">SUBSTRING</span><span style="color: #808080;">&#40;</span>sched.<span style="color: #202020;">nextRunDate</span>, <span style="color: #000;">5</span>, <span style="color: #000;">2</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">+</span> <span style="color: #FF0000;">'/'</span> 
        <span style="color: #808080;">+</span> <span style="color: #FF00FF;">SUBSTRING</span><span style="color: #808080;">&#40;</span>sched.<span style="color: #202020;">nextRunDate</span>, <span style="color: #000;">7</span>, <span style="color: #000;">2</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">+</span> <span style="color: #FF0000;">' '</span> 
        <span style="color: #808080;">+</span> <span style="color: #FF00FF;">SUBSTRING</span><span style="color: #808080;">&#40;</span>sched.<span style="color: #202020;">nextRunTime</span>, <span style="color: #000;">1</span>, <span style="color: #000;">2</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">+</span> <span style="color: #FF0000;">':'</span> 
        <span style="color: #808080;">+</span> <span style="color: #FF00FF;">SUBSTRING</span><span style="color: #808080;">&#40;</span>sched.<span style="color: #202020;">nextRunTime</span>, <span style="color: #000;">3</span>, <span style="color: #000;">2</span><span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">AS</span> <span style="color: #FF0000;">'nextRunDate'</span>
      <span style="color: #008080;">/* Note: the sysjobschedules table refreshes every 20 min, 
        so nextRunDate may be out of date */</span>
    , <span style="color: #FF0000;">'Execute msdb.dbo.sp_update_job @job_id = '</span><span style="color: #FF0000;">''</span> 
        <span style="color: #808080;">+</span> <span style="color: #0000FF;">CAST</span><span style="color: #808080;">&#40;</span>job.<span style="color: #202020;">job_id</span> <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">CHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">36</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">+</span> <span style="color: #FF0000;">''</span><span style="color: #FF0000;">', @enabled = 0;'</span> <span style="color: #0000FF;">AS</span> <span style="color: #FF0000;">'disableScript'</span>
<span style="color: #0000FF;">FROM</span> msdb.<span style="color: #202020;">dbo</span>.<span style="color: #202020;">sysjobs</span> <span style="color: #0000FF;">AS</span> job
Join myCTE <span style="color: #0000FF;">AS</span> sched
    <span style="color: #0000FF;">ON</span> job.<span style="color: #202020;">job_id</span> <span style="color: #808080;">=</span> sched.<span style="color: #202020;">job_id</span>
<span style="color: #0000FF;">WHERE</span> job.<span style="color: #202020;">enabled</span> <span style="color: #808080;">=</span> <span style="color: #000;">1</span> <span style="color: #008080;">-- do not display disabled jobs</span>
<span style="color: #0000FF;">ORDER</span> <span style="color: #0000FF;">BY</span> nextRunDate;</pre></div></div>

<p>Not sure what I'm doing with the @weekDay table?  Then check out my post on <a href="http://sqlfool.com/2009/02/bitwise-operations/">bitwise operations in T-SQL</a>.  </p>
<p>Happy Coding!</p>
<p>Michelle Ufford (aka <a href="http://sqlfool.com">SQLFool</a>)</p>
<p><strong>PS:</strong>  I haven't tested this with every possible setting, just the ones I use.  If I missed something, please let me know so I can correct it.</p>
<p><strong>PPS: </strong>the sysjobschedules table only refreshes every 20 min, so the nextRunDate value may be a little out of date.</p>
<p>Source: <a href="http://sqlfool.com/2009/02/view-sql-agent-jobs-tsql/">http://sqlfool.com/2009/02/view-sql-agent-jobs-tsql/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sqlfool.com/2009/02/view-sql-agent-jobs-tsql/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>T-SQL Bitwise Operations</title>
		<link>http://sqlfool.com/2009/02/bitwise-operations/</link>
		<comments>http://sqlfool.com/2009/02/bitwise-operations/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 14:38:46 +0000</pubDate>
		<dc:creator>Michelle Ufford</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Performance & Tuning]]></category>
		<category><![CDATA[SQL Tips]]></category>
		<category><![CDATA[Syndication]]></category>
		<category><![CDATA[bitwise]]></category>
		<category><![CDATA[operators]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://sqlfool.com/?p=435</guid>
		<description><![CDATA[I've seen bit-product columns from time-to-time, mostly in SQL Server 2000 system tables, but it's never been something I've had to work with. And when I've needed to, I've known how to figure out which options are selected, i.e. a bit product of 9 means options 8 and 1 are selected. If you've ever taken [...]]]></description>
			<content:encoded><![CDATA[<p>I've seen bit-product columns from time-to-time, mostly in SQL Server 2000 system tables, but it's never been something I've had to work with.  And when I've needed to, I've known how to figure out which options are selected, i.e. a bit product of 9 means options 8 and 1 are selected.  If you've ever taken a look at the [status] column on the <a href="http://msdn.microsoft.com/en-us/library/aa260406(SQL.80).aspx" target="_blank">sysdatabases</a> table (SQL 2000), you'll know what I'm talking about.</p>
<p>What I've never known how to do, until recently, was calculate these options programmatically.  That's why, when I noticed the [freq_interval] on the <a href="http://msdn.microsoft.com/en-us/library/ms178644.aspx" target="_blank">sysschedules</a> table was a bit-product column, I decided to spend a little time figuring it out.  Fortunately for me, a couple of my awesome co-workers, Jeff M. and Jason H., have worked with this before and were able to explain it to me.  And, it turns out, it's actually quite easy.</p>
<p>Let me back up a few steps in case you're not familiar with this topic.  If you check out the Books Online entry for the <a href="http://msdn.microsoft.com/en-us/library/ms178644.aspx" target="_blank">sysschedules</a> table (2005), you'll notice the following statement:</p>
<blockquote><p>
<strong>freq_interval</strong> is one or more of the following:<br />
1 = Sunday<br />
2 = Monday<br />
4 = Tuesday<br />
8 = Wednesday<br />
16 = Thursday<br />
32 = Friday<br />
64 = Saturday</p></blockquote>
<p>When I looked at the actual value in the table, the schedule has a [freq_interval] value of 42, which is the sum of the bit values for the days selected.  </p>
<p>If there were more than 7 options, the bit values would continue to double, i.e. 128, 256, etc.  And regardless of how many bit values you select, you're guaranteed one and only one possible answer, as the sum of all previous bit values will never exceed the next bit value:<br />
1 + 2 = 3<br />
1 + 2 + 4 = 7<br />
1 + 2 + 4 + 8 = 15</p>
<p>Knowing this, I'm able to retrieve the values manually: I start with the highest bit value that does not exceed 42, then subtract it; I repeat until I'm left with 0.</p>
<p>So...<br />
42 - 32 = 10<br />
10 - 8 = 2<br />
2 - 2 = 0</p>
<p>That means my job is scheduled to run on Friday's (32), Wednesday's (8), and Monday's (2).  </p>
<p>Now how do I do this with T-SQL?  SQL Server provides an operator specifically for this task: the <a href="http://msdn.microsoft.com/en-us/library/ms174965.aspx" target="_blank">bitwise AND</a> operator (&#038;).  <em>For now, I'm going to skip the "why" behind this and just get to the practical application.  If you're interested in the "why," let me know and I'll write a follow-up post on binary and logical AND and OR operations.</em></p>
<p>For example, to use the bitwise AND to find out which days are selected...</p>

<div class="wp_syntax"><div class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">SELECT</span> <span style="color: #000;">42</span> <span style="color: #808080;">&amp;</span> <span style="color: #000;">1</span> <span style="color: #0000FF;">AS</span> <span style="color: #FF0000;">'Sunday'</span>
    , <span style="color: #000;">42</span> <span style="color: #808080;">&amp;</span> <span style="color: #000;">2</span> <span style="color: #0000FF;">AS</span> <span style="color: #FF0000;">'Monday'</span>
    , <span style="color: #000;">42</span> <span style="color: #808080;">&amp;</span> <span style="color: #000;">4</span> <span style="color: #0000FF;">AS</span> <span style="color: #FF0000;">'Tuesday'</span>
    , <span style="color: #000;">42</span> <span style="color: #808080;">&amp;</span> <span style="color: #000;">8</span> <span style="color: #0000FF;">AS</span> <span style="color: #FF0000;">'Wednesday'</span>
    , <span style="color: #000;">42</span> <span style="color: #808080;">&amp;</span> <span style="color: #000;">16</span> <span style="color: #0000FF;">AS</span> <span style="color: #FF0000;">'Thursday'</span>
    , <span style="color: #000;">42</span> <span style="color: #808080;">&amp;</span> <span style="color: #000;">32</span> <span style="color: #0000FF;">AS</span> <span style="color: #FF0000;">'Friday'</span>
    , <span style="color: #000;">42</span> <span style="color: #808080;">&amp;</span> <span style="color: #000;">64</span> <span style="color: #0000FF;">AS</span> <span style="color: #FF0000;">'Saturday'</span>;</pre></div></div>

<p>... will return ...</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">Sunday      Monday      Tuesday     Wednesday   Thursday    Friday      Saturday
----------- ----------- ----------- ----------- ----------- ----------- -----------
0           2           0           8           0           32          0</pre></div></div>

<p>If the result is not equal to zero, then that day is selected.  Easy as key lime pie, right?</p>
<p>Now let's take it a step further and create our own working example.  Let's say we're going to track the characteristics of various objects in a single bit-product column (<em>note: this is not necessarily the best way to accomplish this in the real world, but it's a good illustration</em>).  First, set up a table to use in our example.  This table will have a column, [attributes], which will hold the sum of our bit values.</p>

<div class="wp_syntax"><div class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">CREATE</span> <span style="color: #0000FF;">TABLE</span> myTable
<span style="color: #808080;">&#40;</span>
      id            <span style="color: #0000FF;">INT</span> <span style="color: #0000FF;">IDENTITY</span><span style="color: #808080;">&#40;</span><span style="color: #000;">1</span>,<span style="color: #000;">1</span><span style="color: #808080;">&#41;</span>
    , item          <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">10</span><span style="color: #808080;">&#41;</span>
    , attributes    <span style="color: #0000FF;">INT</span>
<span style="color: #808080;">&#41;</span>;
&nbsp;
<span style="color: #0000FF;">INSERT</span> <span style="color: #0000FF;">INTO</span> myTable
<span style="color: #0000FF;">SELECT</span> <span style="color: #FF0000;">'Broccoli'</span>, <span style="color: #000;">200</span> <span style="color: #0000FF;">UNION</span> All
<span style="color: #0000FF;">SELECT</span> <span style="color: #FF0000;">'Tomato'</span>, <span style="color: #000;">193</span> <span style="color: #0000FF;">UNION</span> All
<span style="color: #0000FF;">SELECT</span> <span style="color: #FF0000;">'Car'</span>, <span style="color: #000;">276</span> <span style="color: #0000FF;">UNION</span> All
<span style="color: #0000FF;">SELECT</span> <span style="color: #FF0000;">'Ball'</span>, <span style="color: #000;">292</span>;</pre></div></div>

<p>Next, we're going to create a table variable that holds characteristics and their values.  We'll then join these two tables together to see which attributes exist for each item.</p>

<div class="wp_syntax"><div class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">DECLARE</span> @statusLookup <span style="color: #0000FF;">TABLE</span>
<span style="color: #808080;">&#40;</span>
      attribute <span style="color: #0000FF;">INT</span>
    , <span style="color: #0000FF;">VALUE</span>     <span style="color: #0000FF;">VARCHAR</span><span style="color: #808080;">&#40;</span><span style="color: #000;">10</span><span style="color: #808080;">&#41;</span>
<span style="color: #808080;">&#41;</span>;
&nbsp;
<span style="color: #0000FF;">INSERT</span> <span style="color: #0000FF;">INTO</span> @statusLookup
<span style="color: #0000FF;">SELECT</span> <span style="color: #000;">1</span>, <span style="color: #FF0000;">'Red'</span> <span style="color: #0000FF;">UNION</span> All
<span style="color: #0000FF;">SELECT</span> <span style="color: #000;">4</span>, <span style="color: #FF0000;">'Blue'</span> <span style="color: #0000FF;">UNION</span> All
<span style="color: #0000FF;">SELECT</span> <span style="color: #000;">8</span>, <span style="color: #FF0000;">'Green'</span> <span style="color: #0000FF;">UNION</span> All
<span style="color: #0000FF;">SELECT</span> <span style="color: #000;">16</span>, <span style="color: #FF0000;">'Metal'</span> <span style="color: #0000FF;">UNION</span> All
&nbsp;
<span style="color: #0000FF;">SELECT</span> <span style="color: #000;">32</span>, <span style="color: #FF0000;">'Plastic'</span> <span style="color: #0000FF;">UNION</span> All
<span style="color: #0000FF;">SELECT</span> <span style="color: #000;">64</span>, <span style="color: #FF0000;">'Plant'</span> <span style="color: #0000FF;">UNION</span> All
<span style="color: #0000FF;">SELECT</span> <span style="color: #000;">128</span>, <span style="color: #FF0000;">'Edible'</span> <span style="color: #0000FF;">UNION</span> All
<span style="color: #0000FF;">SELECT</span> <span style="color: #000;">256</span>, <span style="color: #FF0000;">'Non-Edible'</span>;
&nbsp;
<span style="color: #0000FF;">SELECT</span> a.<span style="color: #202020;">item</span>, b.<span style="color: #0000FF;">VALUE</span>
<span style="color: #0000FF;">FROM</span> myTable a
Cross Join @statusLookup b
<span style="color: #0000FF;">WHERE</span> a.<span style="color: #202020;">attributes</span> <span style="color: #808080;">&amp;</span> b.<span style="color: #202020;">attribute</span> <span style="color: #808080;">&lt;&gt;</span> <span style="color: #000;">0</span>
<span style="color: #0000FF;">ORDER</span> <span style="color: #0000FF;">BY</span> a.<span style="color: #202020;">item</span>
    , b.<span style="color: #0000FF;">VALUE</span></pre></div></div>

<p>You should get this result:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">item       value
---------- ----------
Ball       Blue
Ball       Non-Edible
Ball       Plastic
Broccoli   Edible
Broccoli   Green
Broccoli   Plant
Car        Blue
Car        Metal
Car        Non-Edible
Tomato     Edible
Tomato     Plant
Tomato     Red</pre></div></div>

<p>Great, now we know broccoli is edible!  Let's apply a little XML to clean up the results...</p>

<div class="wp_syntax"><div class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">SELECT</span> a.<span style="color: #202020;">item</span>
    , <span style="color: #FF00FF;">REPLACE</span><span style="color: #808080;">&#40;</span> <span style="color: #FF00FF;">REPLACE</span><span style="color: #808080;">&#40;</span> <span style="color: #FF00FF;">REPLACE</span><span style="color: #808080;">&#40;</span><span style="color: #808080;">&#40;</span> 
        <span style="color: #0000FF;">SELECT</span> <span style="color: #0000FF;">VALUE</span> 
        <span style="color: #0000FF;">FROM</span> @statusLookup <span style="color: #0000FF;">AS</span> b 
        <span style="color: #0000FF;">WHERE</span> a.<span style="color: #202020;">attributes</span> <span style="color: #808080;">&amp;</span> b.<span style="color: #202020;">attribute</span> <span style="color: #808080;">&lt;&gt;</span> <span style="color: #000;">0</span> 
        <span style="color: #0000FF;">ORDER</span> <span style="color: #0000FF;">BY</span> b.<span style="color: #0000FF;">VALUE</span> <span style="color: #0000FF;">FOR</span> XML Raw<span style="color: #808080;">&#41;</span>
        , <span style="color: #FF0000;">'&quot;/&gt;&lt;row value=&quot;'</span>, <span style="color: #FF0000;">', '</span><span style="color: #808080;">&#41;</span>, <span style="color: #FF0000;">'&lt;row value=&quot;'</span>, <span style="color: #FF0000;">''</span><span style="color: #808080;">&#41;</span>, <span style="color: #FF0000;">'&quot;/&gt;'</span>, <span style="color: #FF0000;">''</span><span style="color: #808080;">&#41;</span> 
        <span style="color: #0000FF;">AS</span> <span style="color: #FF0000;">'attributes'</span>
<span style="color: #0000FF;">FROM</span> myTable a
<span style="color: #0000FF;">ORDER</span> <span style="color: #0000FF;">BY</span> a.<span style="color: #202020;">item</span>;</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">item       attributes
----------------------------------------
Ball       Blue, Non-Edible, Plastic
Broccoli   Edible, Green, Plant
Car        Blue, Metal, Non-Edible
Tomato     Edible, Plant, Red</pre></div></div>

<p>Voila!  There you have it, how to use the bitwise AND (&#038;) operator to retrieve multiple values from a bit-product column.  Pretty neat stuff!</p>
<p>Special thanks to Jeff M. and Jason H. for their assistance.  <img src='http://sqlfool.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Happy Coding!</p>
<p>Michelle Ufford (aka <a href="http://sqlfool.com">SQLFool</a>)</p>
<p>Source: <a href="http://sqlfool.com/2009/02/bitwise-operations/">http://sqlfool.com/2009/02/bitwise-operations/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sqlfool.com/2009/02/bitwise-operations/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
	</channel>
</rss>
