Friday, 12 January 2018

Comma Separated Column Value In SQL Server





DECLARE @DATE VARCHAR(MAX) = '';

SELECT 
STUFF(
(
SELECT ', ' + CAST(COLUMNNAME AS VARCHAR(MAX))
FROM dbo.TABLENAME AS T WITH (NOLOCK)
WHERE 1 =1 
AND T.DATE = @DATE
FOR XML PATH('')
) , 1, 2, ''
);

Monday, 1 January 2018

All Connected User List Out Sql Server (Login User)


SELECT hostname 'Computer Name', DB_NAME(dbid) 'Database', program_name AS Program_Name, COUNT(program_name) 'TotalConnection'
FROM
       master.dbo.sysprocesses
WHERE
       hostname <> ''
       AND DB_NAME(dbid) <> 'master'
GROUP BY
       hostname, DB_NAME(dbid), Program_Name;


Wednesday, 11 October 2017

Dynamically Insert Data To Source Server To Target Server Base On Linked Server

BEGIN
    DECLARE @QUERY VARCHAR(MAX)=''
DECLARE @TARGETTABLENAME VARCHAR(MAX)=''
DECLARE @SOURCETABLENAME VARCHAR(MAX)=''
DECLARE @TARGETSERVER VARCHAR(MAX)='[SERVER\SQLEXPRESS]'
DECLARE @SOURCESERVER VARCHAR(MAX)='[]'

DECLARE @TARGETDB VARCHAR(MAX)=''
DECLARE @SOURCEDB VARCHAR(MAX)=''

SELECT @QUERY ='BEGIN ' + CHAR(10) + CHAR(9) + 'INSERT INTO ' + @TARGETSERVER + '.' + @TARGETDB + '.' + @TARGETTABLENAME + 
CHAR(10) + CHAR(9)+ 'SELECT * FROM ' + @SOURCESERVER + '.' + @SOURCEDB + '.' + @SOURCETABLENAME + CHAR(10) +'END'

PRINT @QUERY
EXECUTE(@QUERY)
END

Monday, 2 October 2017

Identifying Connections Count in SQL Server

SELECT DB_NAME(ST.dbid) AS the_database
        , COUNT(eC.connection_id) AS total_database_connections
FROM sys.dm_exec_connections eC
        CROSS APPLY sys.dm_exec_sql_text (eC.most_recent_sql_handle) ST
        LEFT JOIN sys.dm_exec_sessions eS
                ON eC.most_recent_session_id = eS.session_id
GROUP BY DB_NAME(ST.dbid)
ORDER BY 1;

Monday, 31 July 2017

Remove All New Line & (Feed) From A Variable Or Column In Sql Server

DECLARE @VARIABLE VARCHAR(MAX)=''

SET @VARIABLE= 'Hello Friend 
Thank You So Much For Visit My Blog 
Priyank Gadhiya '

SELECT REPLACE(REPLACE(@VARIABLE, CHAR(13), ''), CHAR(10), '')

Tuesday, 25 July 2017

Range Between Two Columns Validation Sql Server

DECLARE @FROMVALUE DECIMAL(15,3)=''  
DECLARE @TOVALUE DECIMAL(15,3)=''  
DECLARE @MESSAGE VARCHAR(MAX)=''  

IF  EXISTS(SELECT * FROM dbo.YOURTABLENAME AS C WHERE (C.F_VALUE <= @FROMVALUE AND C.T_VALUE >= @TOVALUE) OR ( (C.F_VALUE BETWEEN @FROMVALUE AND @TOVALUE ) AND (C.T_VALUE BETWEEN @FROMVALUE AND @TOVALUE))
)
BEGIN
SELECT @Message = 'Sorry !! Your Criteria Already Added !!'
RAISERROR (@Message, 16, 1);
END 

Wednesday, 19 July 2017

Script To All Few Days Modified Stored Procedure In Sql Server


DECLARE @PROCEDURENAME VARCHAR(255)
DECLARE @PROCEDUREID INT
DECLARE @TEXT VARCHAR(MAX)
DECLARE @GRANT_CMD VARCHAR(100)
DECLARE @GRANT_LEVEL VARCHAR(100)
DECLARE @GRANT_ROLE VARCHAR(200)
DECLARE @FILTER_DATE DATETIME = DATEADD(dd, -1, GETDATE())


DECLARE PROC_CURSOR CURSOR FOR

SELECT NAME,OBJECT_ID
FROM SYS.OBJECTS
WHERE TYPE = 'P'AND 
MODIFY_DATE >= @FILTER_DATE
ORDER BY MODIFY_DATE DESC

OPEN PROC_CURSOR
FETCH NEXT FROM PROC_CURSOR INTO @PROCEDURENAME,@PROCEDUREID
WHILE @@FETCH_STATUS = 0
BEGIN

SELECT @TEXT=SM.DEFINITION
FROM SYS.SQL_MODULES AS SM
JOIN SYS.OBJECTS AS O ON SM.OBJECT_ID = O.OBJECT_ID
WHERE O.TYPE='P'
AND OBJECT_NAME(SM.OBJECT_ID) = @PROCEDURENAME
PRINT '---------------------------- START PROC ( ' + @PROCEDURENAME + ' ) DATE ' + CONVERT(CHAR(10),@FILTER_DATE,126) +' ---------------------------'
PRINT 'IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N''[DBO].[' + @PROCEDURENAME + ']'') AND TYPE IN (N''P'', N''PC''))'
PRINT 'BEGIN' + CHAR(13) + CHAR(10) + CHAR(9) + 'DROP PROCEDURE [DBO].[' + @PROCEDURENAME + '] '+ CHAR(13) +'END'
PRINT 'GO'
PRINT @TEXT
--SELECT @TEXT
PRINT 'GO'

DECLARE PERMISSIONS_CURSOR CURSOR FOR

SELECT PERMISS.STATE_DESC,PERMISS.PERMISSION_NAME,PRINC.NAME
FROM SYS.DATABASE_PRINCIPALS AS PRINC
INNER JOIN SYS.DATABASE_PERMISSIONS AS PERMISS ON PERMISS.GRANTEE_PRINCIPAL_ID = PRINC.PRINCIPAL_ID
WHERE PERMISS.MAJOR_ID=@PROCEDUREID

OPEN PERMISSIONS_CURSOR
FETCH NEXT FROM PERMISSIONS_CURSOR INTO @GRANT_CMD,@GRANT_LEVEL,@GRANT_ROLE
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @GRANT_CMD + ' ' + @GRANT_LEVEL + ' ON [DBO].[' + @PROCEDURENAME + '] TO [' + @GRANT_ROLE + '] AS [DBO]'
PRINT 'GO'
FETCH NEXT FROM PERMISSIONS_CURSOR INTO @GRANT_CMD,@GRANT_LEVEL,@GRANT_ROLE
END
CLOSE Permissions_Cursor
DEALLOCATE Permissions_Cursor

PRINT '---------------------------  END PROC (' + @PROCEDURENAME + ' ) DATE ' + CONVERT(CHAR(10),@FILTER_DATE,126) + '  -------------------------'

FETCH NEXT FROM PROC_CURSOR INTO @PROCEDURENAME,@PROCEDUREID

END
CLOSE PROC_CURSOR
DEALLOCATE PROC_CURSOR