How to split/denormalize a SQL table where one of the columns contains comma-separated values
Continue reading “SplitCSV – Split comma-separated column as Table”SQL best practices for SharePoint 2013/2016
thanks to RISHABH
Database File Separation Recommendations
- Storage is one of the keys to performance. It is recommended that the following database file separation be used (separate disks, separate LUNs), in priority order, where possible:
Enforce Unique Nullable Column With ‘IGNORE_DUP_KEY = ON’
CREATE TABLE [identigy].[patron](
[ID] [bigint] NOT NULL,
[DISID] [nvarchar](20) NOT NULL,
[PKID] [nvarchar](20) NULL,
[DISHID] [nvarchar](20) NULL,
[FIRSTNAME] [nvarchar](250) NULL,
[LASTNAME] [nvarchar](250) NULL,
[CLASSIFICATION] [nvarchar](250) NULL,
[FLAGS] [nvarchar](500) NULL,
[SHIFTS] [nvarchar](50) NULL,
[ACTION] [nvarchar](10) NULL,
[ACTIVE] [bit] NOT NULL CONSTRAINT [DEFAULT_Identigy_Patron_Active] DEFAULT ((1))
,[DISIDnullbuster] AS (CASE WHEN [DISID] IS NULL THEN CAST(ID AS VARCHAR(20)) ELSE DISID END)
,[PKIDnullbuster] AS (CASE WHEN [PKID] IS NULL THEN CAST(ID AS VARCHAR(20)) ELSE PKID END)
,CONSTRAINT [PK_Identigy_Patron] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (IGNORE_DUP_KEY = ON) ON [PRIMARY]
,CONSTRAINT [UX_Identigy_Patron_DISID] UNIQUE ( [DISIDnullbuster] ASC ) WITH (IGNORE_DUP_KEY = ON) ON [PRIMARY]
,CONSTRAINT [UX_Identigy_Patron_PKID] UNIQUE ( [PKIDnullbuster] ASC ) WITH (IGNORE_DUP_KEY = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
dbatools.io: PowerShell & SQL Server
SQL Bulk Upload
How can we avoid duplicate values while we are doing bulk insert to a table
--BEGIN TRAN
CREATE TABLE [tlg].[UserVisitLogs](
[TStamp] DATETIME,
[SessionID] NVARCHAR(20),
[CorrelationID] NVARCHAR(20),
[SchoolCode] NVARCHAR(20),
[SiteExternalID] NVARCHAR(20),
[WebType] NVARCHAR(20),
[WebUrl] NVARCHAR(100),
[UserSid] NVARCHAR(50),
[UserName] NVARCHAR(20),
[UserType] NVARCHAR(20),
[CachedUser] NVARCHAR(20)
)
GO
-- Create Unique Clustered Index with IGNORE_DUPE_KEY=ON to avoid duplicate
CREATE UNIQUE CLUSTERED INDEX [ClusteredIndex-Logs] ON [tlg].[UserVisitLogs]
(
[TStamp] DESC,
[SessionID] ASC,
[CorrelationID] ASC,
[SchoolCode] ASC,
[SiteExternalID] ASC,
[WebType] ASC,
[WebUrl] ASC,
[UserSid] ASC,
[UserName] ASC,
[UserType] ASC,
[CachedUser] ASC
) WITH (IGNORE_DUP_KEY = ON)
GO
--ROLLBACK TRAN
/*
Thanks to dbatools.io : https://www.youtube.com/watch?v=kQYUrSlb0wg
*/