<?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>Rupstjarn 55 &#187; SQL Scripts</title>
	<atom:link href="http://domotica.ronnkvist.nu/category/sql-scripts/feed/" rel="self" type="application/rss+xml" />
	<link>http://domotica.ronnkvist.nu</link>
	<description>Domotica - Home Automation</description>
	<lastBuildDate>Thu, 05 Nov 2009 09:57:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Log diskspace</title>
		<link>http://domotica.ronnkvist.nu/blog/2009/09/18/log-diskspace/</link>
		<comments>http://domotica.ronnkvist.nu/blog/2009/09/18/log-diskspace/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 06:08:19 +0000</pubDate>
		<dc:creator>riro</dc:creator>
				<category><![CDATA[SQL Scripts]]></category>
		<category><![CDATA[VBScripts]]></category>
		<category><![CDATA[Diskspace]]></category>

		<guid isPermaLink="false">http://domotica.ronnkvist.nu/?p=161</guid>
		<description><![CDATA[If you want to log the usage of diskspace on a computer it&#8217;s not that hard.. you just need some place to store the data and a script that runs at given intervals.
I have a table in my SQL Server.

CREATE TABLE Diskspace(
	index bigint IDENTITY(1,1) NOT NULL,
	TimeStamp datetime NOT NULL,
	FreePercent decimal(18, 3) NOT NULL,
	DriveLetter char(1) NOT [...]]]></description>
			<content:encoded><![CDATA[<p>If you want to log the usage of diskspace on a computer it&#8217;s not that hard.. you just need some place to store the data and a script that runs at given intervals.</p>
<p>I have a table in my SQL Server.</p>
<pre class="brush: sql;">
CREATE TABLE Diskspace(
	index bigint IDENTITY(1,1) NOT NULL,
	TimeStamp datetime NOT NULL,
	FreePercent decimal(18, 3) NOT NULL,
	DriveLetter char(1) NOT NULL,
 CONSTRAINT PK__Diskspace__49C3F6B7 PRIMARY KEY CLUSTERED
(
	index ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON PRIMARY
) ON PRIMARY
</pre>
<p>Then I have a VBScript that runs every five minutes (via Eventghost). You need to change databasename, user and password.</p>
<pre class="brush: vb;">
Set oDb = createobject(&quot;ADODB.Connection&quot;)
oDb.ConnectionString = &quot;DRIVER={SQL Server Native Client 10.0};SERVER=localhost;DATABASE=TheDatabaseName;UID=MyUserName;PWD=SomePassword; OPTION=3&quot;
oDb.Open

Set oWmiService = GetObject(&quot;winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2&quot;)
Set oDisks = oWmiService.ExecQuery(&quot;Select * from Win32_LogicalDisk Where DriveType = 3&quot;)

For Each oDisk In oDisks
    sPercent = Replace(Round((oDisk.FreeSpace / oDisk.Size)*100, 1), &quot;,&quot;, &quot;.&quot;)
    sDisk = uCase(Replace(oDisk.DeviceID, &quot;:&quot;, &quot;&quot;))

	sSql = &quot;INSERT INTO diskspace (TimeStamp, FreePercent, DriveLetter) VALUES (GETDATE(), '&quot; &amp; sPercent &amp; &quot;', '&quot; &amp; sDisk &amp; &quot;')&quot;
	WScript.Echo sSql
	oDb.Execute(sSql)
Next

oDb.Close
</pre>
<p>As easy as that&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://domotica.ronnkvist.nu/blog/2009/09/18/log-diskspace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Last temperature reading</title>
		<link>http://domotica.ronnkvist.nu/blog/2009/09/13/last-temperature-reading/</link>
		<comments>http://domotica.ronnkvist.nu/blog/2009/09/13/last-temperature-reading/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 05:49:18 +0000</pubDate>
		<dc:creator>riro</dc:creator>
				<category><![CDATA[SQL Scripts]]></category>
		<category><![CDATA[MSure]]></category>
		<category><![CDATA[Temperature]]></category>

		<guid isPermaLink="false">http://domotica.ronnkvist.nu/?p=154</guid>
		<description><![CDATA[If you want to create a webpage or something similar you might want to show off the latest temperature reading.
This script will give you last reading in every table, if you want to exclude / include specific tables look at the &#8220;AND Name NOT LIKE&#8221; lines.

IF EXISTS(SELECT TABLE_NAME FROM TEMPDB.INFORMATION_SCHEMA.TABLES
      [...]]]></description>
			<content:encoded><![CDATA[<p>If you want to create a webpage or something similar you might want to show off the latest temperature reading.</p>
<p>This script will give you last reading in every table, if you want to exclude / include specific tables look at the &#8220;AND Name NOT LIKE&#8221; lines.</p>
<pre class="brush: sql;">
IF EXISTS(SELECT TABLE_NAME FROM TEMPDB.INFORMATION_SCHEMA.TABLES
      WHERE TABLE_NAME LIKE '#TemperatureLast%')
   DROP TABLE #TemperatureLast
GO

CREATE TABLE #TemperatureLast (
   MSureName SYSNAME NOT NULL,
   TimeStamp DATETIME NOT NULL,
   Temperature DECIMAL(18, 3) NOT NULL,
)

DECLARE
   @query VARCHAR(2000),
   @currTable SYSNAME

DECLARE tablesCurr CURSOR
	FOR
	SELECT Name as TableName
		FROM  sysobjects
		WHERE xtype = 'U'
			AND Name NOT LIKE '%space%'
			-- AND Name NOT LIKE '%something%'
			-- AND Name LIKE 'Temperature%'
		ORDER BY TableName
	FOR READ ONLY

OPEN tablesCurr
   FETCH NEXT FROM tablesCurr INTO @currTable
   WHILE (@@FETCH_STATUS &lt;&gt; -1) BEGIN

		SET @Query = 'SELECT TOP 1 ''' + @currTable + ''', TimeStamp, Temperature FROM ' + @currTable + ' ORDER BY TimeStamp DESC'
		INSERT #TemperatureLast EXEC (@query)

      FETCH NEXT FROM tablesCurr INTO @currTable
   END
CLOSE tablesCurr
DEALLOCATE tablesCurr

SELECT * FROM #TemperatureLast
DROP TABLE #TemperatureLast
</pre>
]]></content:encoded>
			<wfw:commentRss>http://domotica.ronnkvist.nu/blog/2009/09/13/last-temperature-reading/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spring and autumn</title>
		<link>http://domotica.ronnkvist.nu/blog/2009/09/13/spring-and-autumn/</link>
		<comments>http://domotica.ronnkvist.nu/blog/2009/09/13/spring-and-autumn/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 05:44:26 +0000</pubDate>
		<dc:creator>riro</dc:creator>
				<category><![CDATA[SQL Scripts]]></category>
		<category><![CDATA[Autumn]]></category>
		<category><![CDATA[Spring]]></category>

		<guid isPermaLink="false">http://domotica.ronnkvist.nu/?p=151</guid>
		<description><![CDATA[According to SMHI autumn is when the average temperature of the day is falling and is between 0 and 10 degrees. And spring is when it&#8217;s rising and between 0 and 10 degrees.
Reference: http://www.smhi.se/cmp/jsp/polopoly.jsp?d=5938&#038;l=sv
This &#8220;little&#8221; script will give you a resulting table with average temperature on UtomhusNorr calculated with the last five days.

IF EXISTS(SELECT TABLE_NAME [...]]]></description>
			<content:encoded><![CDATA[<p>According to SMHI autumn is when the average temperature of the day is falling and is between 0 and 10 degrees. And spring is when it&#8217;s rising and between 0 and 10 degrees.</p>
<p>Reference: <a href="http://www.smhi.se/cmp/jsp/polopoly.jsp?d=5938&#038;l=sv">http://www.smhi.se/cmp/jsp/polopoly.jsp?d=5938&#038;l=sv</a></p>
<p>This &#8220;little&#8221; script will give you a resulting table with average temperature on UtomhusNorr calculated with the last five days.</p>
<pre class="brush: sql;">
IF EXISTS(SELECT TABLE_NAME FROM TEMPDB.INFORMATION_SCHEMA.TABLES
      WHERE TABLE_NAME LIKE '#TemperatureAvg%')
   DROP TABLE #TemperatureAvg
GO

CREATE TABLE #TemperatureAvg (
   TimeStamp DATETIME NOT NULL,
   Temperature DECIMAL(18, 3) NOT NULL,
)

DECLARE
   @query VARCHAR(2000),
   @currDate DATETIME

DECLARE dateCurr CURSOR
   FOR
   SELECT DISTINCT CAST(CONVERT(CHAR(10),TimeStamp,20) AS DATETIME) as TempDates
   FROM UtomhusNorr
   WHERE TimeStamp &amp;gt; DATEADD(month, -1, GETDATE())
   ORDER BY TempDates DESC
   FOR READ ONLY

OPEN dateCurr
   FETCH NEXT FROM dateCurr INTO @currDate
   WHILE (@@FETCH_STATUS &amp;lt;&amp;gt; -1) BEGIN
      SET @Query = 'SELECT MAX(TimeStamp) AS TimeStamp, AVG(Temperature) as Temperature FROM UtomhusNorr WHERE TimeStamp &amp;gt; DATEADD(day, -5, ''' + CONVERT(NVARCHAR(32), @currDate) + ''') AND TimeStamp &amp;lt; ''' + CONVERT(NVARCHAR(32), @currDate) + ''''
      INSERT #TemperatureAvg EXEC (@query)

      FETCH NEXT FROM dateCurr INTO @currDate
   END
CLOSE dateCurr
DEALLOCATE dateCurr

SELECT TimeStamp, Temperature AS AvgTemp5daysBack FROM #TemperatureAvg
DROP TABLE #TemperatureAvg
</pre>
]]></content:encoded>
			<wfw:commentRss>http://domotica.ronnkvist.nu/blog/2009/09/13/spring-and-autumn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrate data from MySQL to SQL Server</title>
		<link>http://domotica.ronnkvist.nu/blog/2009/09/13/migrate-data-from-mysql-to-sql-server/</link>
		<comments>http://domotica.ronnkvist.nu/blog/2009/09/13/migrate-data-from-mysql-to-sql-server/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 05:37:19 +0000</pubDate>
		<dc:creator>riro</dc:creator>
				<category><![CDATA[SQL Scripts]]></category>
		<category><![CDATA[VBScripts]]></category>
		<category><![CDATA[Migrate]]></category>
		<category><![CDATA[MSure]]></category>

		<guid isPermaLink="false">http://domotica.ronnkvist.nu/?p=149</guid>
		<description><![CDATA[Since I work with MS SQL Server (and have done for the last 10 years) I converted the MySQL-databases in MSure to MS SQL.
This script will copy 4 tables, easy to add more.
Remember to change the ConnectionString&#8217;s to your settings. (server, database, user and password)

Set oMySQL = createobject(&#34;ADODB.Connection&#34;)
oMySQL.ConnectionString = &#34;DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;DATABASE=msure;UID=msure;PWD=abc123; OPTION=3&#34;
oMySQL.Open

Set oSql [...]]]></description>
			<content:encoded><![CDATA[<p>Since I work with MS SQL Server (and have done for the last 10 years) I converted the MySQL-databases in MSure to MS SQL.<br />
This script will copy 4 tables, easy to add more.<br />
Remember to change the ConnectionString&#8217;s to your settings. (server, database, user and password)</p>
<pre class="brush: vb;">
Set oMySQL = createobject(&quot;ADODB.Connection&quot;)
oMySQL.ConnectionString = &quot;DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;DATABASE=msure;UID=msure;PWD=abc123; OPTION=3&quot;
oMySQL.Open

Set oSql = createobject(&quot;ADODB.Connection&quot;)
oSql.ConnectionString = &quot;DRIVER={SQL Server Native Client 10.0};SERVER=localhost;DATABASE=msure;UID=MSure;PWD=abc123; OPTION=3&quot;
oSql.Open

CopyTable &quot;UtomhusNorr&quot;
CopyTable &quot;UtomhusOster&quot;
CopyTable &quot;UtomhusSoder&quot;
CopyTable &quot;UtomhusVaster&quot;

sub CopyTable(sTable)
  set oSource = oMySQL.Execute(&quot;SELECT * FROM &quot; &amp; sTable)
  do while not oSource.Eof

    sSql = &quot;INSERT INTO &quot; &amp; sTable &amp; &quot; (TimeStamp, Temperature) VALUES ('&quot; &amp; oSource(&quot;TimeStamp&quot;) &amp; &quot;', '&quot; &amp; Replace(oSource(&quot;Temperature&quot;),&quot;,&quot;, &quot;.&quot;) &amp; &quot;')&quot;

    wscript.echo sSql
    oSql.Execute sSql

    oSource.MoveNext
  Loop
End Sub

oMySQL.Close
oSql.Close
</pre>
]]></content:encoded>
			<wfw:commentRss>http://domotica.ronnkvist.nu/blog/2009/09/13/migrate-data-from-mysql-to-sql-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

