Friday, June 10, 2011
SQL Server: An error occurred while executing batch. Error message is: The directory name is invalid.
An error occurred while executing batch. Error message is: The directory name is invalid.
After doing some online research, I found out that the reason for this error is because SQL Server cannot find the temp folder in which to store the query results. To correct this, try logging off and back on to the machine that you are running SSMS on. If the error persists, reboot the machine.
Thursday, June 2, 2011
Cannot edit job steps in SSMS 2008 R2
Creating an instance of the COM component with CLSID {AA40D1D6-CAEF-4A56-B9BB-D0D3DC976BA2} from the IClassFactory failed due to the following error: c001f011. (Microsoft.SqlServer.ManagedDTS)
You may also get this error when attempting to create a new job step.
I did a search and found several old post requesting help with the same problem. Microsoft corrected the problem with the last Hotfix; Cumulative Update package 7 for SQL Server 2008 R2.
For more information on Cumulative Update package 7 for SQL Server 2008 R2 and how to download it, go here; http://support.microsoft.com/kb/2507770
Wednesday, May 18, 2011
MADExop: The Mid Atlantic Developer Expo in Hampton, VA June 30 - July 1, 2011

Ok, so I get an email from Andrew Duthie at Microsoft asking me to get the word out about the upcoming Mid Atlantic Developer Expo (MADExop) in Hampton, VA. Now this was the first time I had heard about it and really wanted go after I visited the website and read all the cool sessions they had lined up. But then, I saw that for only $20 you could bring your child for an all day kid geekout session! Now, what could be better? You go for two days of awesome and, did I mention cheep?, developer training from the best developers around and inspire your child to follow in your footsteps at the same time!
Take a look at the lineups for Thursday and Friday sessions:
Click here for a PDF of the Day 1 Agenda
Click here for a PDF of the Day 2 Agenda
Register here!
MADExpo 2011 Registration!
Thursday, May 12, 2011
Idera's SQLsafe Restore Error "too recent to apply to the database"
I was expecting for the database to be restored in no time, but instead, and with horror written all over my face, I received the following error message in the "Result Text" with a BIG RED "Error" Progress indicator next to my Restore status.
-------------------------------------------- snip -------------------------------------------
" Server instance: INSTANCE/NAME, Database: mas500_pl
The log in this backup set begins at LSN 94000000227900001, which is too recent to apply to the database. An earlier log backup that includes LSN 94000000221200001 can be restored.
RESTORE LOG is terminating abnormally."
--------------------------------------------------------------------------------------------
With embarrassment, I turned to my manager and told him that I would call Idera's support staff and get help with restoring the database. I called the support number and got routed to a voice mailbox. However, within just a few minutes, I got a call back from Carl at Idera's Customer Support. I explained to him the issue I was having and after some brief research on his part, he said based on the message I was receiving that it looked like another backup had been done and that the SQLsafe backup that I was attempting to use was not the most current.
I then opened SSMS and started the restore database wizard. I selected the database that I wanted to restore and then clicked file and add to browse to the folder. Then SURPRISE! The default backup folder appeared with recent backups of the database that I was attempting to restore.
I then clicked on the SQL Server Agent and found a Full Backup job scheduled to run every Sunday at 2:00 am which was after the SQLsafe Full backups.

To restore the database, I first had to restore the native Full backup from Sunday morning with the following sql script;
RESTORE DATABASE [mas500_pl]
FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BACKUP\mas500_pl_db_201105010200.BAK'
WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10
GO
Next I opened SQLsafe and restored each Differential, one at a time, with "Force restore", "Ingnore Checksum Errors", and with non-recovery, "Not accessible", until the last Differential. For the last Differential, I restored it with recovery or "Fully accessible".
So a BIG Thank You goes out to Carl at Idera's Customer Support!
Friday, November 12, 2010
PASS Summit 2010 Keynote David DeWitt
Thursday, June 10, 2010
SQL Server Row Counts in Properties Are Wrong!
USE DatabaseName
GO
SELECT rowcnt
FROM dbo.sysindexes
WHERE OBJECT_NAME(id) = 'TableName'
GO
-- Returns
330013
A count of the table results in the following;
USE DatabaseName
GO
SELECT COUNT(1) AS CNT
FROM dbo.TableName
GO
-- Returns
331882
To update the sysindexes table with the correct row counts, we run the following DBCC;
USE DatabaseName
GO
DBCC UPDATEUSAGE(0) WITH COUNT_ROWS;
GO
Now when we run our queries again, we get the following;
USE DatabaseName
GO
SELECT rowcnt
FROM dbo.sysindexes
WHERE OBJECT_NAME(id) = 'TableName '
GO
SELECT COUNT(1) AS CNT
FROM dbo.TableName
GO
-- Returns
331882
-- Returns
331882
Monday, May 24, 2010
Cast Scientific Notation as Money or Varchar
First, CAST as VARCHAR:
LTRIM(RTRIM(CAST(CAST('2.50823E+12' AS FLOAT) AS NVARCHAR))) Second, CAST as MONEY:
LTRIM(RTRIM(CAST(CAST(CAST('2.50823E+12' AS FLOAT) AS NVARCHAR)AS MONEY))) Now, let's see this in a CASE statement:
,CASE
WHEN [AMOUNT] LIKE '%E-%' THEN LTRIM(RTRIM(CAST(CAST(CAST([AMOUNT]AS FLOAT) AS NVARCHAR)AS MONEY)))
WHEN [AMOUNT] = ' ' THEN NULL
ELSE [AMOUNT]
END AS [AMOUNT]
