Wednesday, January 30, 2013
Tuesday, January 8, 2013
SQL Server Find Table Fragmentation
Tuesday, December 18, 2012
SQL for Validate Email
Friday, October 19, 2012
Find Date of Last Restore
http://www.mssqltips.com/sqlservertip/1860/identify-when-a-sql-server-database-was-restored-the-source-and-backup-date/
SELECT [rs].[destination_database_name], [rs].[restore_date], [bs].[backup_start_date], [bs].[backup_finish_date], [bs].[database_name] as [source_database_name], [bmf].[physical_device_name] as [backup_file_used_for_restore] FROM msdb..restorehistory rs INNER JOIN msdb..backupset bs ON [rs].[backup_set_id] = [bs].[backup_set_id] INNER JOIN msdb..backupmediafamily bmf ON [bs].[media_set_id] = [bmf].[media_set_id] ORDER BY [rs].[restore_date] DESC
Wednesday, October 10, 2012
IE7 and IE8 Serif / Letter Tail Cut Off
line-height: normal;
http://stackoverflow.com/questions/634824/ie7-is-clipping-my-text-how-do-i-adjust-its-attitude
Thursday, September 20, 2012
HTML Table - Text Not Centered in Headers
Monday, September 17, 2012
Fun with Dynamic SQL - Abusing the Data Layer
Period | Records | Charges |
1301 | 55975 | 523110523.76 |
1302 | 58820 | 554884666.09 |
1303 | 0 | 0.00 |
1304 | 0 | 0.00 |
1305 | 0 | 0.00 |
1306 | 0 | 0.00 |
1307 | 0 | 0.00 |
1308 | 0 | 0.00 |
1309 | 0 | 0.00 |
1310 | 0 | 0.00 |
1311 | 0 | 0.00 |
1312 | 0 | 0.00 |
-------------------------------------------------------------------
ALTER PROC schema.getChargeCounts (@currentFY CHAR (2), @tOut VARCHAR (MAX) OUTPUT)
AS
BEGIN
/**************************************************************************
Joe Kelly
2012-09-17 17:43:59.300
Returns an HTML table of late charge information based up on the two digit
year entered.
DECLARE @V VARCHAR (maX) = ''
EXEC schema.getChargeCounts @currentFY = '13', @tOut = @V OUTPUT
SELECT @V
**************************************************************************/
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET NOCOUNT ON
DECLARE @rowCount INT = 12
, @iter INT = 1
, @Period CHAR (4) = ''
, @tStart CHAR (256) = ''
, @tEnd CHAR (8) = '
, @tHead CHAR (512) = 'PeriodRecordsCharges'
, @tRStart CHAR (256) = ''
, @tREnd CHAR (8) = ''
, @tDStarCC CHAR (256) = ''
, @tDStartR CHAR (256) = ''
, @tDEnd CHAR (8) = ''
, @SQL NVARCHAR (MAX) = ''
DECLARE @Report TABLE (
ident INT IDENTITY (1, 1)
, Period INT
, Records BIGINT
, Charges MONEY
)
DECLARE @ReportOut TABLE (
ident INT IDENTITY (1, 1)
, Period INT
, Records BIGINT
, Charges MONEY
)
SELECT @SQL = 'SELECT lc.Period, Count (*) Records , Sum (Charge) Charges
FROM dbo.Charge_FY' + CAST (@currentFY AS CHAR (2)) + ' LC
WHERE ' + CAST (@currentFY AS CHAR (2)) + ' = LEFT (lc.Period, 2)
GROUP BY lc.Period '
INSERT @Report (
Period
, Records
, Charges
)
EXEC sp_EXECUTESQL @SQL
WHILE (@iter <= 12)
BEGIN
SELECT @Period = @currentFY + RIGHT (CAST (REPLICATE ('0', 2) AS VARCHAR (2)) + CAST (@iter AS VARCHAR (3)), 2)
INSERT @ReportOut (
Period
, Records
, Charges
)
SELECT @Period
, 0
, 0
SELECT @iter += 1
END
UPDATE RO
SET ro.Records = r.Records
, ro.Charges = r.Charges
FROM @ReportOut RO
JOIN @Report r
ON ro.period = r.period
SELECT @tOut +=
@tStart
+ @tHead
SELECT @iter = 1
WHILE (@iter <= 12)
BEGIN
SELECT @tOut +=
@tRStart
+ @tDStarCC
+ CAST (Period AS VARCHAR (64))
+ @tDEnd
+ @tDStartR
+ CAST (Records AS VARCHAR (64))
+ @tDEnd
+ @tDStartR
+ CAST (CONVERT (MONEY, Charges, 2) AS VARCHAR (64))
+ @tDEnd
+ @tREnd
FROM @ReportOut
WHERE ident = @iter
SET @iter += 1
END
SELECT @tOut += @tEnd
SELECT @tOut = REPLACE (REPLACE (REPLACE (@tOut, ' ', ''), ' ', ''), ' ', '')
END
Tuesday, September 4, 2012
Funky IE Appearance Upon Deployment - Intranet
Source: http://blogs.msdn.com/b/askie/archive/2009/03/23/understanding-compatibility-modes-in-internet-explorer-8.aspx
Note for intranet sites the default is 7, not 8.
Unfortunately the default compatibility mode for intranet sites is set to "On" in IE.
Thursday, August 30, 2012
jquery with Master Pages and Subdirectories - Correct Path Syntax
Error:" $ is not defined"
Helpful: http://stackoverflow.com/questions/2194992/jquery-is-not-defined
Use the net tab in firebug to make sure the URI is being written out and is being loaded.
Syntax:
[script type="text/javascript" src="../Scripts/jquery/jquery.1.8.0.dev.js" ][/script]
Verified for FF & IE.
Tuesday, August 21, 2012
IIS 6.0 Local User Security
A common site configuration issue (non-AD):
KCTS - Make sure the root of your FTP site is not the localuser(s) folder itself but its parent folder.
http://forums.devshed.com/ftp-help-113/iis-6-isolate-user-ftp-91708.html
Thursday, August 9, 2012
VB6 DLL Web Deployment Errors
ActiveX_component_can't_create_object
' "ASP_0177_:_800401f3" means that the component either has not been registered or that
' the name that was passed to call it is bad (http://forums.iis.net/t/1122303.aspx)
'
' Check that the dll has been registered and that the correct case is being used
' both in the build and the call (not sure if it is case sensitive)
'
' If component fails on deployment make sure that all class modules have
' "5 - Multiuse" selected for their "instancing" property
VB6 DLL Web Deployment
ActiveX_component_can't_create_object
Hook to Debug VB6 ActiveX DLL
'
' 'Note that switching from an ActiveX DLL to a Standard EXE may/will change the ' class module “Instancing” property from “Multiuse” to “Private” (error: “No
' ' creatable public component detected". To get back to the ActiveX DLL change the ' class module “Instancing” property back to “Multiuse”
'
' Dim sError, vTable, WriteAccess, RowCount
' ' name of class that contains the function to invoke
'
' Dim foo As New cReports
'
' Dim sPEDate, sL5, sL4, sL3, sL2, sL1, sCC, sFrom, sTxtMonth, states(12), hFromRev, hSortBy
' Dim vReportDataarray(3), TimePeriod, sType
' Dim sUsername, oUCSF
' Dim ARows, BRows, CRows, DRows, ERows, ZRows
'
' sPEDate = "1211"
' sCC = "1742001 "
' hSortBy = "ActRevenue"
'
' ' invoke function
' sError = foo.getRPT_MEV_CC_Revenue_Detail(sPEDate, vReportDataarray, sUsername, sCC, ARows, BRows, CRows, DRows, ERows, ZRows, states, hSortBy)
'
' 'F8 – away!
'
' 'modal for a breakpoint
' MsgBox Command$, vbOK, "Command Line params"
'
'End Sub
Great Powershell Script - Directory Size Recursively
http://technet.microsoft.com/en-us/library/ff730945.aspx
$startFolder = "C:\Scripts" $colItems = (Get-ChildItem $startFolder | Measure-Object -property length -sum) "$startFolder -- " + "{0:N2}" -f ($colItems.sum / 1MB) + " MB" $colItems = (Get-ChildItem $startFolder -recurse | Where-Object {$_.PSIsContainer -eq $True} | Sort-Object) foreach ($i in $colItems) { $subFolderItems = (Get-ChildItem $i.FullName | Measure-Object -property length -sum) $i.FullName + " -- " + "{0:N2}" -f ($subFolderItems.sum / 1MB) + " MB" }
Tuesday, July 31, 2012
Is Agent Job Running???
AS
BEGIN
/**************************************************************************
Joe Kelly
2012-07-31 17:56:04.540
Determines if a job is running or not
EXEC portal.isJobRunning @jobName = 'Export%'
Template source:
http://weblogs.asp.net/johnbilliris/archive/2009/10/13/how-to-determine-if-a-sql-job-is-running.aspx
**************************************************************************/
SET NOCOUNT ON
DECLARE @xp_results TABLE (
job_id UNIQUEIDENTIFIER NOT NULL
, last_run_date INT NOT NULL
, last_run_time INT NOT NULL
, next_run_date INT NOT NULL
, next_run_time INT NOT NULL
, next_run_schedule_id INT NOT NULL
, requested_to_run INT NOT NULL -- BOOL
, request_source INT NOT NULL
, request_source_id sysname COLLATE database_default NULL
, running INT NOT NULL -- BOOL
, current_step INT NOT NULL
, current_retry_attempt INT NOT NULL
, job_state INT NOT NULL
)
INSERT INTO @xp_results
EXECUTE master.dbo.xp_sqlagent_enum_jobs 1, 'dbo'
SELECT xpr.running
, sjv.name
FROM @xp_results xpr
JOIN MSDB.dbo.sysjobs_view sjv
ON xpr.job_id = sjv.job_id
WHERE sjv.name LIKE @jobName
END
Flight Recorder OLAP CUBE Trace
Default 5MB log on OLAP installations:
http://msdn.microsoft.com/en-us/library/ms174827.aspx (search for FlightRecorder)
http://support.microsoft.com/kb/2128005
FlightRecorder
The events and columns captured by the Flight Recorder are controlled by a trace definition file. The advanced server property named Log\FlightRecorder\TraceDefinitionFile controls the definition file used by the Fligth Recorder. By default, the property is blank, which means the Flight Recorder defaults to using the trace file definition stored in the file flightrecordertracedef.xml, which is stored in the ..\OLAP\bin directory wherever SSAS is installed.
http://social.msdn.microsoft.com/forums/en-US/sqlanalysisservices/thread/9bcc369d-5f23-41fc-916d-448e20182430
Monday, July 30, 2012
List of Tables in Access DB
Source???
SELECT MSysObjects.Name AS table_name FROM MSysObjects WHERE (((Left([Name],1))<>"~") AND ((Left([Name],4))<>"MSys") AND ((MSysObjects.Type) In (1,4,6))) order by MSysObjects.Name
Thursday, July 19, 2012
Debugging SSCode - UCSFMC
a.) Remove tag referring to .\SSCode\xx.cs
b.) Take contents (functions) of xx.cs and create a file in App_Code with the calling page's name and a class wrapper with the file name
c.) In xx.aspx change the page directive references to the new class and file name.
Monday, July 2, 2012
Classic ASP Errors on Large Result Set with No Information
I this case the IIS buffer had to be increased.
Example log message: 2012-07-02 19:46:09 W3SVC1522741043 127.0.0.1 POST /Reports/Reports_Var_CC_Rev.asp |0|ASP_0251_:_80004005|Response_Buffer_Limit_Exceeded 655 UCSFMC\kellyjoe 127.0.0.1 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.2;+Trident/4.0;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.04506.30;+.NET+CLR+3.0.04506.648;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729;+.NET4.0C;+.NET4.0E;+InfoPath.3) 500 0 0
http://support.microsoft.com/kb/925764
Friday, June 8, 2012
runas syntax
Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe"
Displaying Table Sizes using T-SQL
http://blog.securahosting.com/technical/databases/displaying-table-sizes-using-t-sql/
SELECT LEFT(OBJECT_NAME(id), 30) AS [Table],
CAST( CAST(reserved * 8192 AS DECIMAL(10,1)) / 1000000.0 AS DECIMAL(10,1)) AS 'Allocated (MB)',
CAST(CAST(dpages * 8192 AS DECIMAL(10,1)) / 1000000.0 AS DECIMAL(10,1)) AS 'Used (MB)',
CAST(CAST((reserved - dpages) * 8192 AS DECIMAL(10,1)) / 1000000.0 AS DECIMAL(10,1)) AS 'Unused (MB)',
rowcnt AS 'Row Count (approx.)'
FROM sysindexes WHERE indid IN (0, 1) AND OBJECT_NAME(id) NOT LIKE 'sys%' AND OBJECT_NAME(id) NOT LIKE 'dt%'
ORDER BY reserved DESC, LEFT(OBJECT_NAME(id), 30)
Wednesday, June 6, 2012
SQL Database Mail "NOTE: Failed to notify 'operator' via email."
If you have set up your SQL Database Mail Operators and SMTP details correctly, but keep getting a message like this: "NOTE: Failed to notify 'operator' via email.", you may not have enabled the Alert System In the SQL Server Agent.
Here's how to enable the Mail System:
Right click "SQL Server Agent" in the Object Explorer and click "Properties"
Go to Alert System, and check the "Enable mail profile" box and select the correct Mail system and Mail profile.
Wednesday, May 9, 2012
Tip to Prevent Scientific Notation in T-SQL Output
SELECT CONVERT(DECIMAL(24, 12), CONVERT(FLOAT, '1.08E+05'));
http://stackoverflow.com/questions/7473081/convert-scientific-notation-to-float-when-using-openrowset-to-import-a-csv-file
Friday, April 13, 2012
Excel compare columns
Sub Compare2Cols()
' Principals
' For x = 1 To 32 Step 4
' For y = 2 To 106
' Cost Centers
' For x = 1 To 83 Step 4
' For y = 2 To 78
' Levels
' For x = 5 To 8 Step 2
' For y = 2 To 32
For x = 5 To 8 Step 2
For y = 2 To 32
'For show ...
Cells(y, x).Select
If Cells(y, x) <> Cells(y, x + 1) Then
With Cells(y, x).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Cells(y, x + 1).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Else
With Cells(y, x).Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Cells(y, x + 1).Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
Next y
Next x
Cells(y, x).Select
End Sub
Thursday, April 12, 2012
Search Every Column in Every Table
SELECT 'SELECT [' + COLUMN_NAME + '] ''[' + TABLE_CATALOG + '].[' + TABLE_SCHEMA + '].[' + TABLE_NAME + ']'' FROM [' + TABLE_CATALOG + '].[' + TABLE_SCHEMA + '].[' + TABLE_NAME + '] WHERE CAST ([' + COLUMN_NAME + '] AS VARCHAR (MAX)) like ''%86110%''' FROM INFORMATION_SCHEMA.Columns c
Wednesday, March 28, 2012
TSQL Script to identify unused indexes
WITH
cte
AS
(
02.
SELECT
03.
'['
+ c.
name
+
'].['
+ o.
name
+
']'
AS
TableName,
04.
i.
name
AS
IndexName,
05.
i.index_id
AS
IndexID,
06.
user_seeks + user_scans + user_lookups
AS
Reads,
07.
user_updates
AS
Writes,
08.
(
09.
SELECT
SUM
(p.
rows
)
10.
FROM
sys.partitions p
11.
WHERE
p.index_id = s.index_id
12.
AND
s.object_id = p.object_id
13.
)
AS
TotalRows,
14.
CASE
15.
WHEN
s.user_updates < 1
THEN
100
16.
ELSE
1.00 * (s.user_seeks + s.user_scans + s.user_lookups)
17.
/ s.user_updates
18.
END
AS
ReadsPerWrite,
19.
'DROP INDEX '
+ QUOTENAME(i.
name
)
20.
+
' ON '
+ QUOTENAME(c.
name
)
21.
+
'.'
+ QUOTENAME(OBJECT_NAME(s.object_id))
22.
AS
'DropSQL'
23.
FROM
sys.dm_db_index_usage_stats s
24.
INNER
JOIN
sys.indexes i
ON
i.index_id = s.index_id
25.
AND
s.object_id = i.object_id
26.
INNER
JOIN
sys.objects o
on
s.object_id = o.object_id
27.
INNER
JOIN
sys.schemas c
on
o.schema_id = c.schema_id
28.
WHERE
OBJECTPROPERTY(s.object_id,
'IsUserTable'
) = 1
29.
AND
s.database_id = DB_ID()
30.
AND
i.type_desc =
'nonclustered'
31.
AND
i.is_primary_key = 0
32.
AND
i.is_unique_constraint = 0
33.
AND
34.
(
35.
SELECT
SUM
(p.
rows
)
36.
FROM
sys.partitions p
37.
WHERE
p.index_id = s.index_id
38.
AND
s.object_id = p.object_id
39.
) > 10000
40.
)
41.
SELECT
*
FROM
cte
42.
/*
43.
TableName
Name
ID Reads Writes
Rows
ReadsPerWrite DropSQL
44.
---------- ----- -- ------- ------ ----- ------------- -------
45.
[dbo].[t1] IDX_1 20 1227972 996081 78599 1.23280335635
DROP
..
46.
[dbo].[t2] IDX_2 21 51359 33912 78599 1.51447865062
DROP
..
47.
[dbo].[t3] IDX_3 22 235280 159808 78599 1.47226672006
DROP
..
48.
*/
Friday, March 16, 2012
Find Non-numeric Rows in Column
CREATE TABLE #foo (
ident BIGINT IDENTITY (0, 1)
, someString VARCHAR (128) DEFAULT '')
INSERT #foo ( someString )
SELECT '4546546'
UNION
SELECT '456654.475'
UNION
SELECT 'afafsdf'
UNION
SELECT '78998'
UNION
SELECT '87979z'
SELECT ident
, someString
, PATINDEX ('%[^0-9]%', someString)
FROM #foo
WHERE PATINDEX ('%[^0-9]%', someString) != 0