There are many methods to find next businessΒ day. One common wayΒ is to use of calendar table. Β This post is to get anΒ output using T-SQL OrΒ UDF function.
Download T-SQL Β NextBusinessDay
The details are given below
The script can be executed by feeding Input values to SQL. In the below example @dt parameter accepts input value.
DECLARE @dt datetime='20150113'
SELECT DATEADD(dd,CASE WHEN DATEDIFF(dd,0,@dt)%7 > 3 THEN 7-DATEDIFF(dd,0,@dt)%7 ELSE 1 END,@dt)

The following methods the input is fed from Table.
Method 1: T-SQL
Declare @TestDate Table(MyDate date);
Insert @TestDate(MyDate) Values('20150112'), ('20150113'), ('20150114'), ('20150115'), ('20150116'), ('20150117'), ('20150118');
Select MyDate, DateAdd(day, Case DateDiff(day, '19000101', MyDate) % 7 When 4 Then 3 When 5 Then 2 Else 1 End, MyDate) As NextWeekDay
From @TestDate;

Method 2: T-SQL
Declare @TestDate Table(MyDate date);
Insert @TestDate(MyDate) Values('20150112'), ('20150113'), ('20150114'), ('20150115'), ('20150116'), ('20150117'), ('20150118');
SELECT MyDate,DATEADD(dd,CASE WHEN DATEDIFF(dd,0,MyDate)%7 > 3 THEN 7-DATEDIFF(dd,0,MyDate)%7 ELSE 1 END,MyDate) from @TestDate

Method 3 : UDF
CREATE FUNCTION dbo.UF_GetWorkingDay(@givenDate DATETIME)
RETURNS DATETIME
AS
BEGIN
DECLARE @workingDate DATETIME
IF (DATENAME(dw , @givenDate) = 'Friday')
BEGIN
SET @workingDate = DATEADD(day, 3, @givenDate)
END
ELSE IF (DATENAME(dw , @givenDate) = 'Saturday')
BEGIN
SET @workingDate = DATEADD(day, 2, @givenDate)
END
ELSE
BEGIN
SET @workingDate = DATEADD(day, 1, @givenDate)
END
RETURN @workingDate
END
Declare @TestDate Table(MyDate date);
Insert @TestDate(MyDate) Values('20150112'), ('20150113'), ('20150114'), ('20150115'), ('20150116'), ('20150117'), ('20150118');
select MyDate,dbo.UF_GetWorkingDay(Mydate) from @TestDate

T-SQL :- How to Search String in all Stored Procedures across All User Defined Databases
There are many different ways to accomplish this tasks.
Download LinkΒ https://gallery.technet.microsoft.com/T-SQL-How-to-Search-String-a1704fc6
The below examples uses undocumented sp’s to loop through all the user defined database to search the SP’s using given string
CREATE TABLE #ProcSearch (databaseName VARCHAR(100),ROUTINE_CATALOG varchar(50),ProcName VARCHAR(128),RoutineType varchar(100),CreateDate date) DECLARE @command varchar(1000) SELECT @command = 'IF ''?'' NOT IN(''master'', ''model'', ''msdb'', ''tempdb'') BEGIN USE ? INSERT INTO #ProcSearch SELECT ''?'',ROUTINE_CATALOG, ROUTINE_NAME, ROUTINE_TYPE, CREATED FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_DEFINITION LIKE ''%Index_Name%'' AND (ROUTINE_TYPE=''PROCEDURE'' or ROUTINE_TYPE=''FUNCTION''); END' EXEC sp_MSforeachdb @command SELECT * FROM #ProcSearch DROP TABLE #ProcSearchThe below SQLΒ uses SearchString as a parameter also it uses syscomments system view
CREATE TABLE #ProcSearch ([databaseNAme] Varchar(100),ProcName VARCHAR(128)) DECLARE @command varchar(1000) Declare @SearchString varchar(100)='Index_Name' SELECT @command = 'IF ''?'' NOT IN(''master'', ''model'', ''msdb'', ''tempdb'') BEGIN USE ? INSERT INTO #ProcSearch ([databaseNAme],[ProcName]) SELECT ''?'', OBJECT_NAME(id) as ROUTINE_CATALOG FROM syscomments WHERE [text] LIKE ''%'+@SearchString+'%'' AND OBJECTPROPERTY(id, ''IsProcedure'') = 1 GROUP BY OBJECT_NAME(id) END' EXEC sp_MSforeachdb @command SELECT * FROM #ProcSearchReference Thread
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/857d9754-ac24-4acb-b402-e52d028bb81a/linked-servers-migration?forum=sqlgetstarted#9c7fec83-610d-4ec6-9b27-9f685031b571
Share this: