<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://devpinoy.org/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">clintz&amp;#39; blog</title><subtitle type="html" /><id>http://devpinoy.org/blogs/clintz/atom.aspx</id><link rel="alternate" type="text/html" href="http://devpinoy.org/blogs/clintz/default.aspx" /><link rel="self" type="application/atom+xml" href="http://devpinoy.org/blogs/clintz/atom.aspx" /><generator uri="http://communityserver.org" version="4.0.30417.1769">Community Server</generator><updated>2006-08-31T14:55:00Z</updated><entry><title>Excel to SQL Server using TSQL</title><link rel="alternate" type="text/html" href="/blogs/clintz/archive/2006/11/21/excel-to-sql-server-using-tsql.aspx" /><id>/blogs/clintz/archive/2006/11/21/excel-to-sql-server-using-tsql.aspx</id><published>2006-11-21T09:52:00Z</published><updated>2006-11-21T09:52:00Z</updated><content type="html">When I create an application, I always ask my client to give
me a sample data for testing my application. Almost all my client give it to me on excel file. To
copy the data from excel to SQL server, what I always do was to create a new DTS package then connect to the server then connect to excel file then transform. So, when my client gave me tons of excel file, it
would be a nightmare to do this over and over so I created this stored procedure to
import the data from excel file to SQL Server.&lt;br&gt;&lt;br&gt;


&lt;span style="color:blue;"&gt;create procedure&lt;/span&gt; _sp_ImportExcelFile

&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;(@Source &lt;span style="color:blue;"&gt;varchar&lt;/span&gt;(1000)&lt;br&gt;

&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;,
@SourceSheet &lt;span style="color:blue;"&gt;varchar&lt;/span&gt; (100)&lt;br&gt;

&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;,
@DestinationTable &lt;span style="color:blue;"&gt;varchar&lt;/span&gt; (100))&lt;br&gt;

&lt;span style="color:blue;"&gt;as &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br&gt;

&lt;br&gt;

&lt;span style="color:blue;"&gt;declare&lt;/span&gt; @retval&lt;span style="color:blue;"&gt; int&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br&gt;

&lt;span style="color:blue;"&gt;EXEC&lt;/span&gt; master..&lt;span&gt;xp_fileexist&lt;/span&gt; @Source, @retval &lt;span style="color:blue;"&gt;output&lt;/span&gt; &lt;span style="color:green;"&gt;-- check if file
exists&lt;/span&gt;&lt;br&gt;



&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;br&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; @retval = 0&lt;br&gt;

&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;begin&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br&gt;

&lt;span style="color:blue;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;print&lt;/span&gt;
&lt;span style="color:red;"&gt;'file does not exist.'&lt;/span&gt;&lt;br&gt;

&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br&gt;

&lt;span style="color:blue;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;end&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br&gt;

&lt;span style="color:blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;br&gt;

&lt;span style="color:blue;"&gt;if &lt;/span&gt;@SourceSheet &lt;span style="color:blue;"&gt;is&lt;/span&gt; n&lt;span&gt;ull or &lt;/span&gt;@SourceSheet
= &lt;span style="color:red;"&gt;''&lt;/span&gt;&lt;br&gt;

&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;set&lt;/span&gt; @SourceSheet = &lt;span style="color:red;"&gt;'[Sheet1$]'
&lt;/span&gt;&lt;span style="color:green;"&gt;-- assume that the Sheet name on excel file is
the default name&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br&gt;

&lt;span style="color:blue;"&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br&gt;

&lt;span style="color:blue;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;set&lt;/span&gt;
@SourceSheet = &lt;span style="color:red;"&gt;'['&lt;/span&gt; + &lt;span style="color:fuchsia;"&gt;ltrim&lt;/span&gt;(&lt;span style="color:fuchsia;"&gt;rtrim&lt;/span&gt;(@SourceSheet)) +&lt;span style="color:red;"&gt;
'$]'&lt;/span&gt;&lt;br&gt;

&lt;br&gt;

&lt;span style="color:blue;"&gt;if&lt;/span&gt; @DestinationTable &lt;span&gt;is null or&lt;/span&gt; @DestinationTable =&lt;span style="color:red;"&gt; ''&lt;/span&gt;&lt;br&gt;

&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;set&lt;/span&gt; @DestinationTable = &lt;span style="color:fuchsia;"&gt;substring&lt;/span&gt;(@SourceSheet,
2, &lt;span style="color:fuchsia;"&gt;len&lt;/span&gt;(@SourceSheet) - 3) + &lt;span style="color:fuchsia;"&gt;convert&lt;/span&gt;(&lt;span style="color:blue;"&gt;varchar&lt;/span&gt;, &lt;span style="color:fuchsia;"&gt;getdate&lt;/span&gt;(), 126)&lt;br&gt;

&lt;br&gt;

&lt;span style="color:blue;"&gt;exec&lt;/span&gt;(&lt;span style="color:red;"&gt;'select * into ['&lt;/span&gt; + @DestinationTable + &lt;span style="color:red;"&gt;']
from openrowset(''Microsoft.Jet.OLEDB.4.0'', ''Excel 8.0;HDR=YES;Database='&lt;/span&gt;
+ @Source + &lt;span style="color:red;"&gt;''', '&lt;/span&gt; + @SourceSheet + &lt;span style="color:red;"&gt;')'&lt;/span&gt;)&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devpinoy.org/aggbug.aspx?PostID=6489" width="1" height="1"&gt;</content><author><name>clintz</name><uri>http://devpinoy.org/members/clintz/default.aspx</uri></author><category term="SQL Scripts" scheme="http://devpinoy.org/blogs/clintz/archive/tags/SQL+Scripts/default.aspx" /><category term="TSQL" scheme="http://devpinoy.org/blogs/clintz/archive/tags/TSQL/default.aspx" /><category term="SQL Server" scheme="http://devpinoy.org/blogs/clintz/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>Tip for faster T-SQL coding</title><link rel="alternate" type="text/html" href="/blogs/clintz/archive/2006/09/27/Tip-for-faster-T_2D00_SQL-coding.aspx" /><id>/blogs/clintz/archive/2006/09/27/Tip-for-faster-T_2D00_SQL-coding.aspx</id><published>2006-09-27T06:32:00Z</published><updated>2006-09-27T06:32:00Z</updated><content type="html">Lots of developers write code in flash with the help of intellisense. But when coding t-sql is scripts, there is no built-in intellisense on query analyzer or SSMS. You will have to use a 3rd party tool to have intellisense on your query analyzer.&lt;br&gt;But if you can't find 3rd party intellisense tool usefull 'cause some tools eats all your memories or something, there's a lot of cool stuff in query analyzer or SSMS, like using the object browser and dragging the column folder of the table to list all the columns seperated by a comma.&lt;br&gt;&lt;br&gt;And also you can use a keyboard shortcut.&lt;br&gt;In Tools&amp;gt;Customize on QA or Tools&amp;gt;Options&amp;gt;Environment&amp;gt;Keyboard on SSMS, you can write a sql statement and assign it on a shortcut ket that will execute whenever you press the shortcut key.&lt;br&gt;&lt;br&gt;For example: &lt;br&gt;Input the statement "&lt;font color="#0000ff"&gt;select&lt;/font&gt; [name] &lt;font color="#0000ff"&gt;from &lt;/font&gt;&lt;font color="#008000"&gt;sysobjects &lt;/font&gt;&lt;font color="#0000ff"&gt;where &lt;/font&gt;xtype = &lt;font color="#ff0000"&gt;'S'&lt;/font&gt;" on CTRL+5 and it will list all the stored procedure when you press CTRL+5.&lt;br&gt;The cool part is, when you highlight a word on the editor, it will serve as a parameter at the sql statement you write on a shortcut key. Like when you put &lt;font color="#a52a2a"&gt;sp_helptext&lt;/font&gt; on one of the shortcut keys, you can just highlight a SP or UDF or View name on the editor and press the shortcut key to view the code.&lt;br&gt;here's the sql statements I used on the shortcuts.&lt;br&gt;&lt;br&gt;CTRL+3 -- list all the tables&lt;font color="#0000ff"&gt;&lt;br&gt;select &lt;/font&gt;TableName=o.name, [Rows]=&lt;font color="#0000ff"&gt;max&lt;/font&gt;(i.[rows]),o.id,(&lt;font color="#0000ff"&gt;select &lt;/font&gt;&lt;font color="#ff1493"&gt;count&lt;/font&gt;(*) &lt;font color="#0000ff"&gt;from &lt;/font&gt;&lt;font color="#008000"&gt;syscolumns &lt;/font&gt;&lt;font color="#0000ff"&gt;where &lt;/font&gt;id=o.id) &lt;font color="#0000ff"&gt;as &lt;/font&gt;ColCount &lt;font color="#0000ff"&gt;from &lt;/font&gt;&lt;font color="#008000"&gt;sysobjects &lt;/font&gt;o &lt;font color="#808080"&gt;join &lt;/font&gt;&lt;font color="#008000"&gt;sysindexes &lt;/font&gt;i &lt;font color="#0000ff"&gt;on &lt;/font&gt;o.id=i.id &lt;font color="#0000ff"&gt;where &lt;/font&gt;xtype=&lt;font color="#ff0000"&gt;'u'&lt;/font&gt; &lt;font color="#808080"&gt;and &lt;/font&gt;&lt;font color="#ff1493"&gt;OBJECTPROPERTY&lt;/font&gt;(o.id, N&lt;font color="#ff0000"&gt;'IsUserTable'&lt;/font&gt;)=1 &lt;font color="#0000ff"&gt;group by&lt;/font&gt; o.name, o.id &lt;font color="#0000ff"&gt;order by &lt;/font&gt;TableName &lt;br&gt;&lt;br&gt;CTRL+4 -- list all the views&lt;br&gt;&lt;font color="#0000ff"&gt;select &lt;/font&gt;Table_Name, &lt;font color="#ff0000"&gt;'VIEW'&lt;/font&gt; &lt;font color="#0000ff"&gt;as &lt;/font&gt;Type &lt;font color="#0000ff"&gt;from &lt;/font&gt;INFORMATION_SCHEMA.Tables &lt;font color="#0000ff"&gt;where &lt;/font&gt;Table_type = &lt;font color="#ff0000"&gt;'VIEW'&lt;/font&gt; &lt;font color="#0000ff"&gt;order by&lt;/font&gt; Table_Type &lt;br&gt;&lt;br&gt;CTRL+5 -- list all the SP&lt;br&gt;&lt;font color="#0000ff"&gt;select &lt;font color="#000000"&gt;[name], &lt;font color="#ff0000"&gt;'Stored Procedure'&lt;/font&gt; &lt;font color="#0000ff"&gt;as &lt;/font&gt;Type &lt;font color="#0000ff"&gt;from &lt;/font&gt;&lt;font color="#008000"&gt;sysobjects &lt;/font&gt;&lt;font color="#0000ff"&gt;where &lt;/font&gt;xtype = &lt;font color="#ff0000"&gt;'P'&lt;/font&gt; &lt;font color="#808080"&gt;and &lt;/font&gt;status &amp;gt;= 0 &lt;font color="#0000ff"&gt;order by&lt;/font&gt; type &lt;font color="#0000ff"&gt;desc&lt;/font&gt;, [name] &lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;CTRL+6 -- list all the UDF&lt;br&gt;&lt;font color="#0000ff"&gt;select &lt;font color="#000000"&gt;[name], &lt;font color="#ff0000"&gt;'&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;Function&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#000000"&gt;&lt;font color="#ff0000"&gt;'&lt;/font&gt; &lt;font color="#0000ff"&gt;as &lt;/font&gt;Type &lt;font color="#0000ff"&gt;from &lt;/font&gt;&lt;font color="#008000"&gt;sysobjects &lt;/font&gt;&lt;font color="#0000ff"&gt;where &lt;/font&gt;xtype &lt;font color="#808080"&gt;in&amp;nbsp; &lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;'TF',&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#000000"&gt;&lt;font color="#ff0000"&gt;'FN',&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#000000"&gt;&lt;font color="#ff0000"&gt;'IF'&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#000000"&gt;) &lt;font color="#808080"&gt;and &lt;/font&gt;status &amp;gt;= 0 &lt;font color="#0000ff"&gt;order by&lt;/font&gt; type &lt;font color="#0000ff"&gt;desc&lt;/font&gt;, [name] &lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;CTRL+7 -- for viewing the code of SP, UDF, View (requires parameter {highlighted text on editor})&lt;br&gt;&lt;font color="#a52a2a"&gt;sp_helptext &lt;/font&gt;&lt;br&gt;&lt;br&gt;CTRL+8 -- to list all the column of a table (requires tablename parameter {highlighted text on editor})&lt;br&gt;&lt;font color="#a52a2a"&gt;sp_MShelpcolumns &lt;/font&gt;&lt;br&gt;&lt;br&gt;I also create a SP:&lt;br&gt;&lt;br&gt;&lt;font color="#0000ff"&gt;CREATE PROCEDURE&lt;/font&gt; _sp_Select_From&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;@objTable &lt;font color="#0000ff"&gt;varchar&lt;/font&gt;(255)&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;, @Order1 &lt;font color="#0000ff"&gt;varchar&lt;/font&gt;(255) = 1&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;, @Order2 &lt;font color="#0000ff"&gt;varchar&lt;/font&gt;(255) = 2&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;, @Order3 &lt;font color="#0000ff"&gt;varchar&lt;/font&gt;(255) = 3&lt;br&gt;&lt;font color="#0000ff"&gt;as&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;exec&lt;/font&gt; (&lt;font color="#ff0000"&gt;'select * from '&lt;/font&gt; + @objTable + &lt;font color="#ff0000"&gt;' order by '&lt;/font&gt; + @Order1 + &lt;font color="#ff0000"&gt;', '&lt;/font&gt; + @Order2 + &lt;font color="#ff0000"&gt;', '&lt;/font&gt; + @Order3)&lt;br&gt;&lt;br&gt;and assign it on CTRL+9 to show the data on a table.&lt;br&gt;&lt;br&gt;And I created a SP:&lt;br&gt;&lt;br&gt;&lt;font color="#0000ff"&gt;CREATE PROCEDURE&lt;/font&gt; _sp_PrintColumns&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; @ObjName &lt;font color="#0000ff"&gt;varchar&lt;/font&gt;(8000)&lt;br&gt;&lt;font color="#0000ff"&gt;as&lt;/font&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;font color="#000080"&gt;set nocount on&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;declare &lt;/font&gt;@TotalParams &lt;font color="#0000ff"&gt;int&lt;/font&gt;, @cntr &lt;font color="#0000ff"&gt;int&lt;/font&gt;, @ObjID &lt;font color="#0000ff"&gt;int&lt;/font&gt;, @ColName &lt;font color="#0000ff"&gt;varchar&lt;/font&gt;(50), @ColValue &lt;font color="#0000ff"&gt;varchar&lt;/font&gt;(50), @ColTypeID &lt;font color="#0000ff"&gt;int&lt;/font&gt;, @ColType &lt;font color="#0000ff"&gt;varchar&lt;/font&gt;(50), @TempColumnName &lt;font color="#0000ff"&gt;varchar&lt;/font&gt;(50)&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;font color="#0000ff"&gt;set &lt;/font&gt;@ObjID = (&lt;font color="#0000ff"&gt;select &lt;/font&gt;[id] &lt;font color="#0000ff"&gt;from &lt;/font&gt;[dbo].&lt;font color="#008000"&gt;sysobjects &lt;/font&gt;&lt;font color="#0000ff"&gt;where &lt;/font&gt;[name] = @ObjName)&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;font color="#0000ff"&gt;if &lt;/font&gt;@ObjID &lt;font color="#0000ff"&gt;is &lt;/font&gt;&lt;font color="#a9a9a9"&gt;NULL &lt;/font&gt;&lt;font color="#808080"&gt;or &lt;/font&gt;@ObjID = &lt;font color="#ff0000"&gt;''&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;font color="#0000ff"&gt;begin&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;font color="#0000ff"&gt;select &lt;/font&gt;&lt;font color="#ff0000"&gt;'object not found'&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;return&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;end&lt;/font&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;set &lt;/font&gt;@TempColumnName = &lt;font color="#ff0000"&gt;''&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;set &lt;/font&gt;@TotalParams = (&lt;font color="#0000ff"&gt;select top &lt;/font&gt;1 colid &lt;font color="#0000ff"&gt;from &lt;/font&gt;[dbo].&lt;font color="#008000"&gt;syscolumns &lt;/font&gt;&lt;font color="#0000ff"&gt;where &lt;/font&gt;[id] = @ObjID &lt;font color="#0000ff"&gt;order by&lt;/font&gt; colid &lt;font color="#0000ff"&gt;desc&lt;/font&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;set &lt;/font&gt;@cntr = 1&lt;br&gt;&lt;br&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;print &lt;/font&gt;&lt;font color="#ff0000"&gt;'--'&lt;/font&gt; + @ObjName&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;font color="#0000ff"&gt;while &lt;/font&gt;@cntr &amp;lt;= @TotalParams&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;font color="#0000ff"&gt;begin&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;set &lt;/font&gt;@TempColumnName = @ColName&lt;br&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; select &lt;/font&gt;&lt;font color="#0000ff"&gt;top &lt;/font&gt;1 @ColName = [name] &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; , @ColTypeID = xtype &lt;br&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; from&lt;/font&gt; [dbo].&lt;font color="#008000"&gt;syscolumns &lt;/font&gt;&lt;font color="#0000ff"&gt;where &lt;/font&gt;[id] = @ObjID and colid = @cntr&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;set &lt;/font&gt;@ColType = (&lt;font color="#0000ff"&gt;select distinct top&lt;/font&gt; 1 [Type_Name] &lt;font color="#0000ff"&gt;from&lt;/font&gt; master.dbo.spt_datatype_info &lt;font color="#0000ff"&gt;where &lt;/font&gt;ss_dtype = @ColTypeID)&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;font color="#0000ff"&gt;if &lt;/font&gt;@TempColumnName&amp;lt;&amp;gt; ''&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;font color="#0000ff"&gt;print &lt;/font&gt;&lt;font color="#ff0000"&gt;', '&lt;/font&gt; + @ColName&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;font color="#0000ff"&gt;else&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;print&lt;/font&gt; @ColName&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;set &lt;/font&gt;@cntr = @cntr + 1&lt;br&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;end&lt;/font&gt;&lt;br&gt;&lt;br&gt;and assign it on CTRL+0 to list all the columns of a table or parameters of SP and UDF seperated by a newline and a comma.&lt;br&gt;&lt;br&gt;And it helps me a lot and makes me more productive.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devpinoy.org/aggbug.aspx?PostID=5316" width="1" height="1"&gt;</content><author><name>clintz</name><uri>http://devpinoy.org/members/clintz/default.aspx</uri></author><category term="SQL Scripts" scheme="http://devpinoy.org/blogs/clintz/archive/tags/SQL+Scripts/default.aspx" /><category term="TSQL" scheme="http://devpinoy.org/blogs/clintz/archive/tags/TSQL/default.aspx" /><category term="SQL Server" scheme="http://devpinoy.org/blogs/clintz/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>Creating Sudoku problems using TSQL</title><link rel="alternate" type="text/html" href="/blogs/clintz/archive/2006/09/05/Creating-Sudoku-problems-using-TSQL.aspx" /><id>/blogs/clintz/archive/2006/09/05/Creating-Sudoku-problems-using-TSQL.aspx</id><published>2006-09-05T08:34:00Z</published><updated>2006-09-05T08:34:00Z</updated><content type="html">When I'm bored at the office or home, I sleep. &lt;br&gt;One rainy afternoon, when I can't find the bug on my application, I feel kinda bored but I don't want to sleep because my manager was pissed. So i went over to the next cubicle to chat with my sleepy officemate and found out that she was playing &lt;a href="http://en.wikipedia.org/wiki/Sudoku"&gt;Sudoku&lt;/a&gt;.&lt;br&gt;I asked her to explain to me how that game works. And I find it interesting.&lt;br&gt;After playing some 5 or 6 games, I thought I can create problems for this game using t-sql, just create a lot of random numbers then copy-paste the result in excel. &lt;br&gt;&lt;br&gt;So there I was, creating a sudoku problem script. And here's what I've done.&lt;br&gt;You can also try it. Just run the script and copy-paste the result in excel and that's it..&lt;br&gt;&lt;br&gt;/*****Sudoku*******/&lt;br&gt;declare @tbl table (id int identity, a char(1), b char(1), c char(1), d char(1), e char(1), f char(1), g char(1), h char(1), i char(1))&lt;br&gt;declare @tblCoordinatesAndValue table (x int, y int, value int)&lt;br&gt;declare @i int, @tmpNo int, @x int, @y int, @v char(1), @isOkX int, @strValues varchar(50), @ypos int&lt;br&gt;set @i = 0&lt;br&gt;&lt;font color="#000000"&gt;insert into&lt;/font&gt;&amp;nbsp; @tbl (a, b, c, d, e, f, g, h, i) values&amp;nbsp; ('', '', '', '', '', '', '', '', '')&lt;br&gt;insert into&amp;nbsp; @tbl (a, b, c, d, e, f, g, h, i) values&amp;nbsp; ('', '', '', '', '', '', '', '', '')&lt;br&gt;insert into&amp;nbsp; @tbl (a, b, c, d, e, f, g, h, i) values&amp;nbsp; ('', '', '', '', '', '', '', '', '')&lt;br&gt;insert into&amp;nbsp; @tbl (a, b, c, d, e, f, g, h, i) values&amp;nbsp; ('', '', '', '', '', '', '', '', '')&lt;br&gt;insert into&amp;nbsp; @tbl (a, b, c, d, e, f, g, h, i) values&amp;nbsp; ('', '', '', '', '', '', '', '', '')&lt;br&gt;insert into&amp;nbsp; @tbl (a, b, c, d, e, f, g, h, i) values&amp;nbsp; ('', '', '', '', '', '', '', '', '')&lt;br&gt;insert into&amp;nbsp; @tbl (a, b, c, d, e, f, g, h, i) values&amp;nbsp; ('', '', '', '', '', '', '', '', '')&lt;br&gt;insert into&amp;nbsp; @tbl (a, b, c, d, e, f, g, h, i) values&amp;nbsp; ('', '', '', '', '', '', '', '', '')&lt;br&gt;insert into&amp;nbsp; @tbl (a, b, c, d, e, f, g, h, i) values&amp;nbsp; ('', '', '', '', '', '', '', '', '')&lt;br&gt;&lt;br&gt;&lt;br&gt;declare @min int, @max int&lt;br&gt;select @min = 1, @max = 9&lt;br&gt;&lt;br&gt;while @i &amp;lt; 80&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;begin&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;set @strValues = ''&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;select @tmpNo&amp;nbsp; = floor((((@max + 1) - @min) * RAND()) + @min)&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;set @x = @tmpNo &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;select @tmpNo&amp;nbsp; = floor((((@max + 1) - @min) * RAND()) + @min)&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;set @y = @tmpNo &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;select @tmpNo&amp;nbsp; = floor((((@max + 1) - @min) * RAND()) + @min)&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;set @v = @tmpNo &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if not exists (select * from @tblCoordinatesAndValue where x = @x and y = @y)&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;begin&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;insert into @tblCoordinatesAndValue (x, y, value) values (@x, @y, @v)&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if @y &amp;gt;= 1 and @y &amp;lt;= 3&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;set @ypos = 1&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if @y &amp;gt;= 4 and @y &amp;lt;= 6&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;set @ypos = 4&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if @y &amp;gt;= 7 and @y &amp;lt;= 9&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;set @ypos = 7&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if @x &amp;gt;= 1 and @x &amp;lt;= 3&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;select @strValues = @strValues + tblTemp.tmp from&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(select top 3 convert(varchar, a) [tmp] from @tbl where id &amp;gt;= @ypos&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;union all select convert(varchar, b) from @tbl where id &amp;gt;= @ypos&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;union all select convert(varchar, c) from @tbl where id &amp;gt;= @ypos) tblTemp&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if @x &amp;gt;= 4 and @x &amp;lt;= 6&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;select @strValues = @strValues + tblTemp.tmp from&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(select top 3 convert(varchar, d) [tmp] from @tbl where id &amp;gt;= @ypos&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;union all select convert(varchar, e) from @tbl where id &amp;gt;= @ypos&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;union all select convert(varchar, f) from @tbl where id &amp;gt;= @ypos) tblTemp&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if @x &amp;gt;= 7 and @x &amp;lt;= 9&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;select @strValues = @strValues + tblTemp.tmp from&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(select top 3 convert(varchar, g) [tmp] from @tbl where id &amp;gt;= @ypos&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;union all select convert(varchar, h) from @tbl where id &amp;gt;= @ypos&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;union all select convert(varchar, i) from @tbl where id &amp;gt;= @ypos) tblTemp&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if charindex(convert(varchar, @v), @strValues) = 0&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;begin&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;set @isOkX = &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(select (case when @x=1 then a when @x=2 then b when @x=3 then c&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;when @x=4 then d when @x=5 then e when @x=6 then f&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;when @x=7 then g when @x=8 then h when @x=9 then i end)&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;from @tbl&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;where (case when @x=1 then a when @x=2 then b when @x=3 then c&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;when @x=4 then d when @x=5 then e when @x=6 then f&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;when @x=7 then g when @x=8 then h when @x=9 then i end) = @v)&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if isnull(@isOkX, 0) = 0&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;begin&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if not exists(select * from @tbl where (a=@v or b=@v or c=@v or d=@v or e=@v or f=@v or g=@v or h=@v or i=@v) and (id = @y))&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;begin&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;update @tbl &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;set a = (case when @x = 1 then @v else a end)&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;, b = (case when @x = 2 then @v else b end)&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;, c = (case when @x = 3 then @v else c end)&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;, d = (case when @x = 4 then @v else d end)&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;, e = (case when @x = 5 then @v else e end)&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;, f = (case when @x = 6 then @v else f end)&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;, g = (case when @x = 7 then @v else g end)&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;, h = (case when @x = 8 then @v else h end)&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;, i = (case when @x = 9 then @v else i end)&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;where id = @y&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;end&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;end&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;end&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;end&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;set @i = @i + 1&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;end&lt;br&gt;&lt;br&gt;select a, b, c, d, e, f, g, h, i from @tbl&lt;br&gt;&lt;br&gt;/******************/&lt;br&gt;&lt;br&gt;If you can optimized the script, the better..&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devpinoy.org/aggbug.aspx?PostID=4760" width="1" height="1"&gt;</content><author><name>clintz</name><uri>http://devpinoy.org/members/clintz/default.aspx</uri></author><category term="SQL Scripts" scheme="http://devpinoy.org/blogs/clintz/archive/tags/SQL+Scripts/default.aspx" /><category term="TSQL" scheme="http://devpinoy.org/blogs/clintz/archive/tags/TSQL/default.aspx" /><category term="SQL Server" scheme="http://devpinoy.org/blogs/clintz/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>Creating Dummy Data</title><link rel="alternate" type="text/html" href="/blogs/clintz/archive/2006/08/31/Creating-Dummy-Data.aspx" /><id>/blogs/clintz/archive/2006/08/31/Creating-Dummy-Data.aspx</id><published>2006-08-31T05:55:00Z</published><updated>2006-08-31T05:55:00Z</updated><content type="html">&lt;span id="dnn_ctr374_MainView_ViewEntry_lblEntry" class="Normal"&gt;Testing is one of the "must" in software development process.&lt;br&gt;Once,
our client lost almost 14 million pesos in a month because of using an
application that was developed in a hurry and tested only for 2 days. I
feel sorry for them because i was the one who developed that
application. I warned them though, that they must have a test run for
atleast a month or two. &lt;br&gt;Anyway, when testing some application, you
will need a dummy data.The most common dummy data that were used are
Integer/Float, String and Date.&lt;br&gt;&lt;br&gt;To create a random integer or float, you can use the &lt;font color="#ff1493"&gt;RAND&lt;/font&gt;() function (from BOL: &lt;font color="#ff1493"&gt;RAND&lt;/font&gt;() function returns a random float value from 0 through 1), but sometimes I get a value more than 1.&lt;br&gt;So,
if you want to generate a random integer which is less than n (n is any
integer), all you have to do is multiply the result of &lt;font color="#ff1493"&gt;RAND&lt;/font&gt;() function to n. &lt;br&gt;So when you run, &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;font color="#0000ff"&gt;select &lt;/font&gt;&lt;font color="#ff1493"&gt;rand&lt;/font&gt;() * 100 &lt;br&gt;the result is always &amp;lt; 100.&lt;br&gt;When you want to generate a random number between two numbers, you can can create a query something like this&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;declare &lt;/font&gt;@min &lt;font color="#0000ff"&gt;int&lt;/font&gt;, @max &lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;select &lt;/font&gt;@min = 10, @max = 20&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;select &lt;/font&gt;(((@max + 1) - @min) * &lt;font color="#ff1493"&gt;RAND&lt;/font&gt;()) + @min&lt;br&gt;&lt;br&gt;To create a random character you can use &lt;font color="#0000ff"&gt;CHAR&lt;/font&gt;() function.&lt;br&gt;This query will generate a random 10-letter string (capital letters)&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;declare &lt;/font&gt;@min &lt;font color="#0000ff"&gt;int&lt;/font&gt;, @max &lt;font color="#0000ff"&gt;int&lt;/font&gt;, @nRand &lt;font color="#0000ff"&gt;int&lt;/font&gt;, @cRand &lt;font color="#0000ff"&gt;varchar&lt;/font&gt;(10)&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;select &lt;/font&gt;@min = 65, @max = 90 &lt;font color="#006400"&gt;-- (97 - 122 --&amp;gt; small letters)&lt;/font&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;declare &lt;/font&gt;@i &lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;set &lt;/font&gt;@i = 0&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;set &lt;/font&gt;@cRand = ''&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;while &lt;/font&gt;@i &amp;lt; 10&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;begin&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;select &lt;/font&gt;@nRand = (((@max + 1) - @min) * &lt;font color="#ff1493"&gt;RAND&lt;/font&gt;()) + @min&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;select &lt;/font&gt;@cRand = @cRand + &lt;font color="#0000ff"&gt;char&lt;/font&gt;(@nRand)&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;set &lt;/font&gt;@i = @i + 1&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;end&lt;/font&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;select &lt;/font&gt;@cRand&lt;br&gt;&lt;br&gt;&lt;br&gt;At first, i find it hard on generating a random date. When you try &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;select &lt;/font&gt;&lt;font color="#ff1493"&gt;cast&lt;/font&gt;(0 as &lt;font color="#0000ff"&gt;datetime&lt;/font&gt;) &lt;font color="#006400"&gt;-- it will return 1900-01-01&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;If that's the case, then all you have to do to generate a random date is generate a random number.&lt;br&gt;In Sql server, i think the full range of dates it can handle is from 01/01/1900&amp;nbsp;&amp;nbsp; &amp;nbsp;to 12/31/9999.&lt;br&gt;The average days in a year is 365.2422.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;select &lt;/font&gt;&lt;font color="#ff1493"&gt;cast&lt;/font&gt;(365.2422 &lt;font color="#0000ff"&gt;as datetime&lt;/font&gt;) &lt;font color="#006400"&gt;-- will return 1901-01-01&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;select &lt;/font&gt;&lt;font color="#ff1493"&gt;cast&lt;/font&gt;(365.2422 * 100 &lt;font color="#0000ff"&gt;as datetime&lt;/font&gt;) &lt;font color="#006400"&gt;-- will return 2000-01-01&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;select &lt;/font&gt;&lt;font color="#ff1493"&gt;cast&lt;/font&gt;(365.2422 * 100 + 13 &lt;font color="#0000ff"&gt;as datetime&lt;/font&gt;) &lt;font color="#006400"&gt;-- will return 2000-01-14&lt;/font&gt;&lt;br&gt;&lt;br&gt;Anyway, if you want to generate a random date in between two dates, you can try this script:&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;declare &lt;/font&gt;@nRand &lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;declare &lt;/font&gt;@Jan &lt;font color="#0000ff"&gt;float&lt;/font&gt;, @Feb &lt;font color="#0000ff"&gt;float&lt;/font&gt;, @Mar &lt;font color="#0000ff"&gt;float&lt;/font&gt;, @Apr &lt;font color="#0000ff"&gt;float&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;, @May &lt;font color="#0000ff"&gt;float&lt;/font&gt;, @Jun &lt;font color="#0000ff"&gt;float&lt;/font&gt;, @Jul &lt;font color="#0000ff"&gt;float&lt;/font&gt;, @Aug &lt;font color="#0000ff"&gt;float&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;, @Sep &lt;font color="#0000ff"&gt;float&lt;/font&gt;, @Oct &lt;font color="#0000ff"&gt;float&lt;/font&gt;, @Nov &lt;font color="#0000ff"&gt;float&lt;/font&gt;, @Dec &lt;font color="#0000ff"&gt;float&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;select &lt;/font&gt;@Jan&amp;nbsp; = 31&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;, @Feb =&amp;nbsp; @Jan + 28.2422&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;, @Mar =&amp;nbsp; @Feb + 31&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;, @Apr =&amp;nbsp; @Mar + 30&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;, @May =&amp;nbsp; @Apr + 31&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;, @Jun =&amp;nbsp; @May + 30&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;, @Jul =&amp;nbsp; @Jun + 31&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;, @Aug =&amp;nbsp; @Jul + 31&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;, @Sep = @Aug + 30&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;, @Oct = @Sep + 31&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;, @Nov = @Oct + 30&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;, @Dec = @Nov + 31&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;font color="#006400"&gt;-- select @Jan jan, @Feb feb, @Mar mar, @Apr apr&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;-- &amp;nbsp;&amp;nbsp; &amp;nbsp;, @May may, @Jun jun, @Jul jul, @Aug aug&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;-- &amp;nbsp;&amp;nbsp; &amp;nbsp;, @Sep sep, @Oct oct, @Nov nov, @Dec [dec]&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#006400"&gt;&amp;nbsp;--to generate a random date between Aug 2005 and Feb 2005:&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;select &lt;/font&gt;@nRand = ((@Aug + 1) - @Feb) * &lt;font color="#ff1493"&gt;RAND&lt;/font&gt;() + @Feb&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;select &lt;/font&gt;convert(&lt;font color="#0000ff"&gt;varchar&lt;/font&gt;, &lt;font color="#ff1493"&gt;cast&lt;/font&gt;((365.2422 * 105) - 31 + @nRand &lt;font color="#0000ff"&gt;as datetime&lt;/font&gt;), 101)&lt;br&gt;&lt;br&gt;There's a lot of way to create a random data in sql server. But those are some of the basic ways i know.&lt;/span&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devpinoy.org/aggbug.aspx?PostID=4692" width="1" height="1"&gt;</content><author><name>clintz</name><uri>http://devpinoy.org/members/clintz/default.aspx</uri></author><category term="SQL Scripts" scheme="http://devpinoy.org/blogs/clintz/archive/tags/SQL+Scripts/default.aspx" /><category term="TSQL" scheme="http://devpinoy.org/blogs/clintz/archive/tags/TSQL/default.aspx" /><category term="SQL Server" scheme="http://devpinoy.org/blogs/clintz/archive/tags/SQL+Server/default.aspx" /></entry></feed>