Skip to content

Instantly share code, notes, and snippets.

@FilipDeVos
FilipDeVos / collation_safe_temptables_08.sql
Created May 13, 2011 08:13
Create Collation safe TempTables
SELECT 'tempdb' as db, TABLE_NAME, COLUMN_NAME, COLLATION_NAME
FROM tempdb.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME like '#RockStarInfo3%'
AND TABLE_SCHEMA = current_user
AND COLUMN_NAME = 'name'
@FilipDeVos
FilipDeVos / fn_strip_zeros.sql
Created May 13, 2011 08:21
Strip trailing zeros
CREATE FUNCTION dbo.fn_strip_zeros(@number numeric(38,10))
RETURNS varchar(38)
WITH ENCRYPTION
AS
BEGIN
DECLARE @result varchar(38)
DECLARE @decimal varchar(3)
SET @decimal = substring(convert(varchar(38), convert(numeric(38,10),1)/5 ), 2,1)
@FilipDeVos
FilipDeVos / xml_raw_schema.sql
Created May 13, 2011 08:27
FOR XML RAW Schema Collection
IF EXISTS(SELECT * FROM sys.schemas WHERE name ='xml_raw_schema')
DROP XML SCHEMA COLLECTION dbo.xml_raw_schema
GO
CREATE XML SCHEMA COLLECTION xml_raw_schema AS
N'<?xml version="1.0"?>
<xsd:schema xmlns:targetNamespace="http://schemas.mycompany.com/myproduct"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
@FilipDeVos
FilipDeVos / xml_raw_schema_example.sql
Created May 13, 2011 08:27
FOR XML RAW Schema Collection
declare @xml xml(xml_raw_schema)
SET @xml = (select * from sys.tables FOR XML RAW, TYPE, ROOT('table'))
select @xml
@FilipDeVos
FilipDeVos / xml_raw_schema_example.xml
Created May 13, 2011 08:28
FOR XML RAW Schema Collection
<table>
<row name="Orders" object_id="2073058421" schema_id="1" parent_object_id="0" type="U " type_desc="USER_TABLE" create_date="2007-04-12T17:30:08.150" modify_date="2007-04-12T17:46:17.043" is_ms_shipped="0" is_published="0" is_schema_published="0" lob_data_space_id="0" max_column_id_used="3" lock_on_bulk_load="0" uses_ansi_nulls="1" is_replicated="0" has_replication_filter="0" is_merge_published="0" is_sync_tran_subscribed="0" has_unchecked_assembly_data="0" text_in_row_limit="0" large_value_types_out_of_row="0" />
</table>
@FilipDeVos
FilipDeVos / usershortcuts.xml
Created May 13, 2011 12:48
SQL Server Management Studio Ctrl+Tab fix
<UserShortcuts>
<RemoveShortcut Command="Window.NextDocumentWindowNav" Scope="Global">Ctrl+Tab</RemoveShortcut>
<Shortcut Command="Window.NextDocumentWindow" Scope="Global">Ctrl+Tab</Shortcut>
<Shortcut Command="Window.NextDocumentWindow" Scope="Query Designer">Ctrl+Tab</Shortcut>
<RemoveShortcut Command="Window.PreviousDocumentWindowNav" Scope="Global">Ctrl+Shift+Tab</RemoveShortcut>
<Shortcut Command="Window.PreviousDocumentWindow" Scope="Global">Ctrl+Shift+Tab</Shortcut>
<Shortcut Command="Window.PreviousDocumentWindow" Scope="Query Designer">Ctrl+Shift+Tab</Shortcut>
</UserShortcuts>
@FilipDeVos
FilipDeVos / sp_help_partition.sql
Created May 16, 2011 14:01
Show Partitioning Information
USE master
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'sp_help_partition')
BEGIN
PRINT 'Dropping procedure sp_help_partition...'
DROP PROCEDURE sp_help_partition
END
print 'Creating procedure sp_help_partition...'
GO
CREATE PROCEDURE sp_help_partition (@object_name sysname = NULL)
AS
@FilipDeVos
FilipDeVos / call_sp_help_partition.sql
Created May 16, 2011 14:01
Show Partitioning Information
exec sp_help_partition 'Orders'
@FilipDeVos
FilipDeVos / thread_safe_insert_update.sql
Created May 16, 2011 14:05
Thread Safe Insert/Update
create table updatetest
(
id int primary key,
name varchar(20),
amount numeric
)
insert into updatetest values (1, 'first', 100)
insert into updatetest values (2, 'second', 500)
insert into updatetest values (3, 'third', 30)
@FilipDeVos
FilipDeVos / updatevalues.sql
Created May 16, 2011 14:08
Thread Safe Insert/Update
CREATE PROCEDURE updatevalues(@id int,
@name varchar(20),
@amount numeric)
AS
IF EXISTS(SELECT * FROM updatetest WHERE id = @id)
BEGIN
UPDATE updatetest
SET name = @name,
amount= @amount