<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Transact-SQL: Count number of lines in all stored procedures in current database</title>
	<atom:link href="http://binaryelves.wordpress.com/2008/08/08/transact-sql-count-number-of-lines-for-all-stored-procedures-in-current-database/feed/" rel="self" type="application/rss+xml" />
	<link>http://binaryelves.wordpress.com/2008/08/08/transact-sql-count-number-of-lines-for-all-stored-procedures-in-current-database/</link>
	<description>blog about C#, ASP.NET, SQL, programming and computer technologies</description>
	<lastBuildDate>Tue, 29 Sep 2009 07:30:38 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Marek Śliwiński</title>
		<link>http://binaryelves.wordpress.com/2008/08/08/transact-sql-count-number-of-lines-for-all-stored-procedures-in-current-database/#comment-58</link>
		<dc:creator>Marek Śliwiński</dc:creator>
		<pubDate>Sun, 04 Jan 2009 18:23:25 +0000</pubDate>
		<guid isPermaLink="false">http://binaryelves.wordpress.com/?p=72#comment-58</guid>
		<description>Hi Vikram :)

Thank you for your interesting comments :)

I didn&#039;t know about &lt;strong&gt;syscomments&lt;/strong&gt; table. It looks like a good and shorter replacment to use instead sp_helptext operations.

But when I did some test procedure like below (with 400 lines of getdate() ) and run your code from 1st post then it returns me only about a half number of lines (201 instead about 400 lines)

So there is something tricky in your SQL statement...
It looks like a problem with stored procedure size. I read that column text in syscomments can take only 4000 chars so maybe here is a point. I don&#039;t have time to investigate this at this moment and will back to this later (maybe you will be faster to solve this problem in your SQL).

Thanks one again for additional idea :) Syscomments table looks better to handle than sp_helptext.

Greetings!
Marek

-- TEST SP CODE HERE -- 
CREATE PROCEDURE [dbo].[TestCountLines] 
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
   
	SET DATEFORMAT ymd
	SET DATEFIRST 1

	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
	SELECT getdate()
END



</description>
		<content:encoded><![CDATA[<p>Hi Vikram :)</p>
<p>Thank you for your interesting comments :)</p>
<p>I didn&#8217;t know about <strong>syscomments</strong> table. It looks like a good and shorter replacment to use instead sp_helptext operations.</p>
<p>But when I did some test procedure like below (with 400 lines of getdate() ) and run your code from 1st post then it returns me only about a half number of lines (201 instead about 400 lines)</p>
<p>So there is something tricky in your SQL statement&#8230;<br />
It looks like a problem with stored procedure size. I read that column text in syscomments can take only 4000 chars so maybe here is a point. I don&#8217;t have time to investigate this at this moment and will back to this later (maybe you will be faster to solve this problem in your SQL).</p>
<p>Thanks one again for additional idea :) Syscomments table looks better to handle than sp_helptext.</p>
<p>Greetings!<br />
Marek</p>
<p>&#8211; TEST SP CODE HERE &#8212;<br />
CREATE PROCEDURE [dbo].[TestCountLines]<br />
AS<br />
BEGIN<br />
	&#8211; SET NOCOUNT ON added to prevent extra result sets from<br />
	&#8211; interfering with SELECT statements.<br />
	SET NOCOUNT ON;</p>
<p>	SET DATEFORMAT ymd<br />
	SET DATEFIRST 1</p>
<p>	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
	SELECT getdate()<br />
END</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vikram</title>
		<link>http://binaryelves.wordpress.com/2008/08/08/transact-sql-count-number-of-lines-for-all-stored-procedures-in-current-database/#comment-52</link>
		<dc:creator>Vikram</dc:creator>
		<pubDate>Fri, 02 Jan 2009 18:56:30 +0000</pubDate>
		<guid isPermaLink="false">http://binaryelves.wordpress.com/?p=72#comment-52</guid>
		<description>I think that I answered my own question by replying to you. If I think about it more. Same query will give count of a keyword in a Stored procedure.

If am trying to count occurrences of CREATE TABLE in a SP, the same query will give me results.

 select o.name as sp_name,
sum((len(replace(lower(c.text), &#039;create table&#039;, ‘Xcreate table&#039; ‘)) - len(lower(c.text)))) as lines_of_code
from sysobjects o
inner join syscomments c
on c.id = o.id
where o.type in (’P&#039;, ‘F’)
and o.name not like ’sp_%’
and o.name not like ’sys%’
and o.name not like ‘xp_%’
group by o.name
go

The trick is to replace create table with xcreate_table and count the diff in the count of text and that should give the total number of occurrences.

I try to use SQL as much as possible if I can avoid the SP code. Not that I am averse but we should use engine&#039;s capability and that is where DB2 is way stronger than any other database. My biases - as I am a DB2 person. I am working to move large number of SQL Server / Sybase databases to DB2 and was interested to know complexities involved in SP code.</description>
		<content:encoded><![CDATA[<p>I think that I answered my own question by replying to you. If I think about it more. Same query will give count of a keyword in a Stored procedure.</p>
<p>If am trying to count occurrences of CREATE TABLE in a SP, the same query will give me results.</p>
<p> select o.name as sp_name,<br />
sum((len(replace(lower(c.text), &#8216;create table&#8217;, ‘Xcreate table&#8217; ‘)) &#8211; len(lower(c.text)))) as lines_of_code<br />
from sysobjects o<br />
inner join syscomments c<br />
on c.id = o.id<br />
where o.type in (’P&#8217;, ‘F’)<br />
and o.name not like ’sp_%’<br />
and o.name not like ’sys%’<br />
and o.name not like ‘xp_%’<br />
group by o.name<br />
go</p>
<p>The trick is to replace create table with xcreate_table and count the diff in the count of text and that should give the total number of occurrences.</p>
<p>I try to use SQL as much as possible if I can avoid the SP code. Not that I am averse but we should use engine&#8217;s capability and that is where DB2 is way stronger than any other database. My biases &#8211; as I am a DB2 person. I am working to move large number of SQL Server / Sybase databases to DB2 and was interested to know complexities involved in SP code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vikram</title>
		<link>http://binaryelves.wordpress.com/2008/08/08/transact-sql-count-number-of-lines-for-all-stored-procedures-in-current-database/#comment-51</link>
		<dc:creator>Vikram</dc:creator>
		<pubDate>Fri, 02 Jan 2009 17:51:07 +0000</pubDate>
		<guid isPermaLink="false">http://binaryelves.wordpress.com/?p=72#comment-51</guid>
		<description>I came to this site googling to find out how to count number of occurrences within a stored procedure without having a burden to write a SP to do this. I am still searching. But, you can use this query to do line counts without writing a SP. This is not fancy but gives you an idea of line count.

 select o.name as sp_name,
    sum((len(replace(c.text, char(10), &#039;  &#039;)) - len(c.text))) as lines_of_code
 from sysobjects o
 inner join syscomments c
 on c.id = o.id
 where o.type in (&#039;P&#039;, &#039;F&#039;)
 and o.name not like &#039;sp_%&#039;
 and o.name not like &#039;sys%&#039;
 and o.name not like &#039;xp_%&#039;
group by o.name
go

The trick here is to replace CHAR(10) with 2 blanks and count the diff between LEN of the SP code.

Several ways to do same thing. But this is simple and may not be sexy.</description>
		<content:encoded><![CDATA[<p>I came to this site googling to find out how to count number of occurrences within a stored procedure without having a burden to write a SP to do this. I am still searching. But, you can use this query to do line counts without writing a SP. This is not fancy but gives you an idea of line count.</p>
<p> select o.name as sp_name,<br />
    sum((len(replace(c.text, char(10), &#8216;  &#8216;)) &#8211; len(c.text))) as lines_of_code<br />
 from sysobjects o<br />
 inner join syscomments c<br />
 on c.id = o.id<br />
 where o.type in (&#8216;P&#8217;, &#8216;F&#8217;)<br />
 and o.name not like &#8217;sp_%&#8217;<br />
 and o.name not like &#8217;sys%&#8217;<br />
 and o.name not like &#8216;xp_%&#8217;<br />
group by o.name<br />
go</p>
<p>The trick here is to replace CHAR(10) with 2 blanks and count the diff between LEN of the SP code.</p>
<p>Several ways to do same thing. But this is simple and may not be sexy.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marek Śliwiński</title>
		<link>http://binaryelves.wordpress.com/2008/08/08/transact-sql-count-number-of-lines-for-all-stored-procedures-in-current-database/#comment-6</link>
		<dc:creator>Marek Śliwiński</dc:creator>
		<pubDate>Sat, 09 Aug 2008 22:06:34 +0000</pubDate>
		<guid isPermaLink="false">http://binaryelves.wordpress.com/?p=72#comment-6</guid>
		<description>Hi PP :)

Thx for the comment!

&quot;Not sure what is the purpose / use of this SP
[...]
Again I say, I dont see any value add in this &quot;

There is only one purpose. The programmer curiosity :) Nothing more.
Have you never wondered about how many lines of SQL you wrote after 4-5 month development in some project? :)
I would like to know the answer because I&#039;m curious man (maybe too much ;))

So there is nothing in code above what you can use to do some technical analysis or improvements in your SQL development (except maybe the thought &quot;100.000 lines in last year? I have to go on holidays IMMEDIATELY!!! ;)) and that wasn&#039;t my goal :)

This particular SP is nothing but for fun. Sorry for confusion if it was not clear enough. It is the same case as for example add-ins for Visual Studio to count number of lines in entire project or solution.

After your post I have started to think what &quot;practical&quot; use can has this SP:
1) maybe analysis which programmer did the most of work in SQL but I don&#039;t think it is a good measure ;)
2) to show the boss that you are not lazy ;) ;)
3) to impress your girlfriend or other friends ;)
4) ? any idea yet? :)

Greetings!
Marek</description>
		<content:encoded><![CDATA[<p>Hi PP :)</p>
<p>Thx for the comment!</p>
<p>&#8220;Not sure what is the purpose / use of this SP<br />
[...]<br />
Again I say, I dont see any value add in this &#8221;</p>
<p>There is only one purpose. The programmer curiosity :) Nothing more.<br />
Have you never wondered about how many lines of SQL you wrote after 4-5 month development in some project? :)<br />
I would like to know the answer because I&#8217;m curious man (maybe too much ;))</p>
<p>So there is nothing in code above what you can use to do some technical analysis or improvements in your SQL development (except maybe the thought &#8220;100.000 lines in last year? I have to go on holidays IMMEDIATELY!!! ;)) and that wasn&#8217;t my goal :)</p>
<p>This particular SP is nothing but for fun. Sorry for confusion if it was not clear enough. It is the same case as for example add-ins for Visual Studio to count number of lines in entire project or solution.</p>
<p>After your post I have started to think what &#8220;practical&#8221; use can has this SP:<br />
1) maybe analysis which programmer did the most of work in SQL but I don&#8217;t think it is a good measure ;)<br />
2) to show the boss that you are not lazy ;) ;)<br />
3) to impress your girlfriend or other friends ;)<br />
4) ? any idea yet? :)</p>
<p>Greetings!<br />
Marek</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: PP</title>
		<link>http://binaryelves.wordpress.com/2008/08/08/transact-sql-count-number-of-lines-for-all-stored-procedures-in-current-database/#comment-5</link>
		<dc:creator>PP</dc:creator>
		<pubDate>Sat, 09 Aug 2008 21:32:22 +0000</pubDate>
		<guid isPermaLink="false">http://binaryelves.wordpress.com/?p=72#comment-5</guid>
		<description>Not sure what is the purpose / use of this SP (I have nothing against your code)

I personally think it would be much more valuable if you could guage the COMPLEXITY of the Stored Procedure based on the CODE which DEV Team can focus on rather them just making any decision based on LINE COUNT

Also, I think many a SP&#039;s have ERROR HANDLERS which can make the LINE COUNT GROW which does not bring any value either

Again I say, I dont see any value add in this (please please dont take it personal)</description>
		<content:encoded><![CDATA[<p>Not sure what is the purpose / use of this SP (I have nothing against your code)</p>
<p>I personally think it would be much more valuable if you could guage the COMPLEXITY of the Stored Procedure based on the CODE which DEV Team can focus on rather them just making any decision based on LINE COUNT</p>
<p>Also, I think many a SP&#8217;s have ERROR HANDLERS which can make the LINE COUNT GROW which does not bring any value either</p>
<p>Again I say, I dont see any value add in this (please please dont take it personal)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marek Śliwiński</title>
		<link>http://binaryelves.wordpress.com/2008/08/08/transact-sql-count-number-of-lines-for-all-stored-procedures-in-current-database/#comment-4</link>
		<dc:creator>Marek Śliwiński</dc:creator>
		<pubDate>Fri, 08 Aug 2008 17:31:35 +0000</pubDate>
		<guid isPermaLink="false">http://binaryelves.wordpress.com/?p=72#comment-4</guid>
		<description>Thank You! :)</description>
		<content:encoded><![CDATA[<p>Thank You! :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pinaldave</title>
		<link>http://binaryelves.wordpress.com/2008/08/08/transact-sql-count-number-of-lines-for-all-stored-procedures-in-current-database/#comment-3</link>
		<dc:creator>pinaldave</dc:creator>
		<pubDate>Fri, 08 Aug 2008 17:03:47 +0000</pubDate>
		<guid isPermaLink="false">http://binaryelves.wordpress.com/?p=72#comment-3</guid>
		<description>Very interesting SP. 
Good Work!

Pinal Dave ( http://www.SQLAuthority.com )</description>
		<content:encoded><![CDATA[<p>Very interesting SP.<br />
Good Work!</p>
<p>Pinal Dave ( <a href="http://www.SQLAuthority.com" rel="nofollow">http://www.SQLAuthority.com</a> )</p>
]]></content:encoded>
	</item>
</channel>
</rss>
