Skip to content

Instantly share code, notes, and snippets.

View kwestground's full-sized avatar

Kenny Westermark kwestground

View GitHub Profile
@kwestground
kwestground / STRING_SPLIT.sql
Last active October 13, 2023 13:43
STRING_SPLIT for SQL 2012, 2014
CREATE FUNCTION [dbo].[STRING_SPLIT](
@string nvarchar(max),
@separator varchar(10))
RETURNS @returnList TABLE
(
[value] [nvarchar](500)
)
AS
BEGIN
DECLARE @name nvarchar(max);
@kwestground
kwestground / func_TruncateWithCount.sql
Created December 9, 2022 15:42
Truncate string and count items from comma
CREATE OR ALTER FUNCTION dbo.func_TruncateWithCount
(
@input nvarchar(max), @MaxLength int
)
RETURNS nvarchar(max)
AS
BEGIN
IF (LEN(@input) <= @MaxLength)
RETURN @input
SELECT TOP 1
T2."UpdateDate", T2."UpdateTS",
CAST(
CAST(T2."UpdateDate" AS date) || ' ' ||
SUBSTRING(RIGHT('0'+ CAST(T2."UpdateTS" AS varchar), 6), 1, 2) || ':' ||
SUBSTRING(RIGHT('0'+ CAST(T2."UpdateTS" AS varchar), 6), 3, 2) || ':' ||
SUBSTRING(RIGHT('0'+ CAST(T2."UpdateTS" AS varchar), 6), 5, 2)
AS datetime)
FROM "ORDR" T2
DECLARE @Table nvarchar(100) = 'MyTableName'
SELECT 'REPLACE(''INSERT INTO ['+@Table+'] (' +
STUFF ((
SELECT ', [' + name + ']'
FROM syscolumns
WHERE id = OBJECT_ID(@Table) AND
name <> 'me'
FOR XML PATH('')), 1, 1, '') +
') VALUES (' +
@kwestground
kwestground / NopMigrateLocaleStringResource.sql
Last active January 18, 2022 09:08
Migrate NopCommerce LocaleStringResource from one to another database
SELECT *,
CASE WHEN S1.ResourceName IS NULL THEN 'INSERT INTO LocaleStringResource VALUES ('+cast(S2.LanguageId as varchar)+', '''+S2.ResourceName+''', '''+REPLACE(S2.ResourceValue, '''', '''''')+''')'
ELSE 'UPDATE LocaleStringResource SET [ResourceValue] = '''+S2.ResourceValue+''' WHERE [ResourceName] = '''+S2.ResourceName+''' AND LanguageId='+cast(S2.LanguageId as varchar)+'' END AS [SQL]
FROM LocaleStringResource S1
FULL OUTER JOIN NopCommerceStage.dbo.LocaleStringResource S2 ON S1.ResourceName=S2.ResourceName AND S1.LanguageId=S2.LanguageId
WHERE ISNULL(S1.ResourceValue, '') <> ISNULL(S2.ResourceValue, '')
WITH TreeRecursive AS
(
SELECT T0.ParentCode, T0.ChildCode, 0 [Level] FROM TreeTable T0
WHERE ParentCode = 'ParentCode'
UNION ALL
SELECT TS.ChildCode, T0.ChildCode, TS.[Level] + 1 AS [Level] FROM TreeTable TS
INNER JOIN TreeTable T0 ON TS.ChildCode = T0.ParentCode
)
SELECT * FROM TreeRecursive
@kwestground
kwestground / POLR_LATEST_CURRENCY_RATE.sql
Last active September 25, 2020 13:29
Scalar function to get lastest currency rate from SAP Business One HANA
ALTER FUNCTION POLR_LATEST_CURRENCY_RATE(CurrencyCode char(3))
RETURNS result decimal(15,2)
LANGUAGE SQLSCRIPT
SQL SECURITY INVOKER AS
BEGIN
DECLARE found INT := 0;
SELECT COUNT(1) INTO found FROM "ORTT" WHERE "Currency" = :CurrencyCode AND "RateDate" <= CURRENT_DATE;
IF :found > 0
THEN
@kwestground
kwestground / BulkImportNopPictures.sql
Created September 9, 2020 09:27
Bulk import pictures into NopCommerce 4.2
/*
exec sp_configure 'show advanced options', '1'
RECONFIGURE
exec sp_configure 'xp_cmdshell', '1'
RECONFIGURE
*/
SET NOCOUNT ON;
DECLARE @FilePath nvarchar(max) = 'C:\Temp\images\';
DECLARE @Command nvarchar(255) = 'dir '+@FilePath+' /b', @FileName nvarchar(255), @Sku nvarchar(255), @Index int, @BinaryData VARBINARY(MAX), @InsertedImageId int, @NopCommerceProductId int;
@kwestground
kwestground / genLocaleStringResource.sql
Last active June 30, 2020 18:53
NopCommerce: Generate LocaleStringResource insert from Log
SELECT DISTINCT
'INSERT INTO [LocaleStringResource] VALUES ('+substring(shortmessage, len(shortmessage), 1)+','''+
SUBSTRING(ShortMessage, 18, CHARINDEX(')',ShortMessage) - 18)
+''','''+
UPPER(LEFT(REVERSE(SUBSTRING(REVERSE(SUBSTRING(ShortMessage, 18, CHARINDEX(')',ShortMessage) - 18)),0,CHARINDEX('.',REVERSE(SUBSTRING(ShortMessage, 18, CHARINDEX(')',ShortMessage) - 18))))),1))+LOWER(SUBSTRING(REVERSE(SUBSTRING(REVERSE(SUBSTRING(ShortMessage, 18, CHARINDEX(')',ShortMessage) - 18)),0,CHARINDEX('.',REVERSE(SUBSTRING(ShortMessage, 18, CHARINDEX(')',ShortMessage) - 18))))),2,LEN(REVERSE(SUBSTRING(REVERSE(SUBSTRING(ShortMessage, 18, CHARINDEX(')',ShortMessage) - 18)),0,CHARINDEX('.',REVERSE(SUBSTRING(ShortMessage, 18, CHARINDEX(')',ShortMessage) - 18))))))))
+''')'
FROM [Log]
LEFT JOIN LocaleStringResource LS ON LS.ResourceName = SUBSTRING(ShortMessage, 18, CHARINDEX(')',ShortMessage) - 18) AND CAST(LS.LanguageId AS varchar) = substring(shortmessage, len(shortmessage), 1)
WHERE L.ShortMessage like 'Resource
@kwestground
kwestground / CompareB1UserQueries.sql
Created December 9, 2019 21:47
Compare User Queries between two SAP Business One Databases
SELECT S."QName", S."QString", ST."QName", ST."QString",
CASE WHEN CAST(S."QString" AS varchar) <> CAST(ST."QString" AS varchar) THEN 1 ELSE 0 END AS "Diff"
FROM "OUQR" S
LEFT JOIN "DB2"."OUQR" ST ON S."QName" = REPLACE(ST."QName", '-', '-')
WHERE S."QName" LIKE '%'