Saturday, 29 December 2018

All Tables Parameters With Isnull Sql Server

BEGIN

DECLARE @TABLENAME VARCHAR(50)='TABLENAME'
DECLARE @COLUMN_LIST VARCHAR(MAX)=''
BEGIN
DECLARE @COLUMN_NAME VARCHAR(MAX)=''
DECLARE @COLUMN_DATA_TYPE VARCHAR(MAX)=''
DECLARE @GENERATED_SCRIPT VARCHAR(MAX)='SELECT ' + char(10)
IF @TABLENAME !=''
BEGIN
    DECLARE CUR CURSOR 
FOR 
SELECT COLUMN_NAME,DATA_TYPE 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TABLENAME
ORDER BY ORDINAL_POSITION
OPEN CUR
FETCH NEXT FROM CUR INTO @COLUMN_NAME,@COLUMN_DATA_TYPE
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@COLUMN_DATA_TYPE ='int')
BEGIN
    SET @GENERATED_SCRIPT = @GENERATED_SCRIPT + 'ISNULL(' + @COLUMN_NAME + ',0) AS ['+ REPLACE(@COLUMN_NAME,'_',' ') + '],' + CHAR(10) 
END
IF (@COLUMN_DATA_TYPE ='varchar')
BEGIN
    SET @GENERATED_SCRIPT = @GENERATED_SCRIPT + 'ISNULL(' + @COLUMN_NAME + ','''') AS ['+ REPLACE(@COLUMN_NAME,'_',' ') + '],' + CHAR(10) 
END
IF (@COLUMN_DATA_TYPE ='tinyint')
BEGIN
    SET @GENERATED_SCRIPT = @GENERATED_SCRIPT + 'ISNULL(' + @COLUMN_NAME + ','''') AS ['+ REPLACE(@COLUMN_NAME,'_',' ') + '],' + CHAR(10) 
END
IF (@COLUMN_DATA_TYPE ='datetime')
BEGIN
    SET @GENERATED_SCRIPT = @GENERATED_SCRIPT + 'ISNULL(' + @COLUMN_NAME + ','''') AS ['+ REPLACE(@COLUMN_NAME,'_',' ') + '],' + CHAR(10) 
END
IF (@COLUMN_DATA_TYPE ='date')
BEGIN
    SET @GENERATED_SCRIPT = @GENERATED_SCRIPT + 'ISNULL(' + @COLUMN_NAME + ','''') AS ['+ REPLACE(@COLUMN_NAME,'_',' ') + '],' + CHAR(10) 
END
IF (@COLUMN_DATA_TYPE ='time')
BEGIN
    SET @GENERATED_SCRIPT = @GENERATED_SCRIPT + 'ISNULL(' + @COLUMN_NAME + ','''') AS ['+ REPLACE(@COLUMN_NAME,'_',' ') + '],' + CHAR(10) 
END
IF (@COLUMN_DATA_TYPE ='decimal')
BEGIN
    SET @GENERATED_SCRIPT = @GENERATED_SCRIPT + 'ISNULL(' + @COLUMN_NAME + ',0) AS ['+ REPLACE(@COLUMN_NAME,'_',' ') + '],' + CHAR(10) 
END
IF (@COLUMN_DATA_TYPE ='bigint')
BEGIN
    SET @GENERATED_SCRIPT = @GENERATED_SCRIPT + 'ISNULL(' + @COLUMN_NAME + ',0) AS ['+ REPLACE(@COLUMN_NAME,'_',' ') + '],' + CHAR(10) 
END

FETCH NEXT FROM CUR INTO @COLUMN_NAME,@COLUMN_DATA_TYPE
END
CLOSE CUR
DEALLOCATE CUR
DECLARE @NEWREMOVESTRING VARCHAR(MAX) =''
SET @NEWREMOVESTRING =  SUBSTRING(@GENERATED_SCRIPT, 1, LEN(@GENERATED_SCRIPT) - 2) + ' '  
SET @GENERATED_SCRIPT = @NEWREMOVESTRING + CHAR(10) + 'FROM dbo.' + @TABLENAME + ' WITH(NOLOCK)'
SELECT @GENERATED_SCRIPT
END
--PRINT @GENERATED_SCRIPT
END
END

Dynamiclly Delete Data With Multiple Table

DECLARE
@EXECUTEQUERY VARCHAR(MAX)='',
@TableNameComma VARCHAR(MAX)='TABLENAME'
AS 
--SELECT @TableNameComma
BEGIN
     
SELECT @EXECUTEQUERY+= 'DELETE FROM [' + s.name + '].[' + t.name + ']' + CHAR(10)  FROM sys.tables t  
INNER JOIN  sys.schemas s ON s.schema_id = t.schema_id
WHERE t.name IN (select CAST(Item AS VARCHAR(max)) from dbo.SplitString(@TableNameComma,',')  )  

--PRINT @EXECUTEQUERY
SELECT @EXECUTEQUERY
--EXEC (@EXECUTEQUERY)
 END

Dynamically Max Value Found to Any Table With Criteria

DECLARE
@FIELDNAME VARCHAR(50)='',
@TABLENAME VARCHAR(50)='',
@WHERECLAUSE VARCHAR(MAX)=''
AS
BEGIN


    DECLARE @RESULT VARCHAR(MAX)=''
IF @WHERECLAUSE <> ''
BEGIN    
SET @RESULT ='SELECT MAX(' + @FIELDNAME + ') FROM ' + @TABLENAME + ' WITH(NOLOCK)  WHERE '+ @WHERECLAUSE
END
ELSE
    BEGIN
        SET @RESULT ='SELECT MAX(' + @FIELDNAME + ') FROM ' + @TABLENAME + ' WITH(NOLOCK)'
    END
EXEC (@RESULT)
END

How can i find the last modified date modified user of an stored procedure in SQL Sever

DECLARE
@FILENAME VARCHAR(255) 
AS
BEGIN

SELECT @FILENAME = SUBSTRING(path, 0, LEN(path)-CHARINDEX('\', REVERSE(path))+1) + '\Log.trc'  
FROM sys.traces   
WHERE is_default = 1;  

SELECT gt.HostName, 
   gt.ApplicationName, 
   gt.NTUserName, 
   gt.NTDomainName, 
   gt.LoginName, 
   gt.SPID, 
   gt.EventClass, 
   te.Name AS EventName,
   gt.EventSubClass,      
   gt.TEXTData, 
   gt.StartTime, 
   gt.EndTime, 
   gt.ObjectName, 
   gt.DatabaseName, 
   gt.FileName, 
   gt.IsSystem
FROM [fn_trace_gettable](@FILENAME, DEFAULT) gt 
JOIN sys.trace_events te ON gt.EventClass = te.trace_event_id 
WHERE EventClass in (164)  
ORDER BY StartTime DESC;
END

Row Count of all tables in a database

BEGIN
CREATE TABLE #counts
(
table_name varchar(255),
row_count int
)

EXEC sp_MSForEachTable @command1='INSERT #counts (table_name, row_count) SELECT ''?'', COUNT(*) FROM ?'
SELECT table_name, row_count FROM #counts ORDER BY     row_count DESC
DROP TABLE #counts
END

Update First Multiple Character In SQL Server

BEGIN
UPDATE dbo.TABLENAME
SET FORM_CODE = 'M11' + SUBSTRING(form_code,4,3)
WHERE LEFT(FORM_CODE,3) = 'M10'  
END

How do I find a value anywhere in a SQL Server Database

DECLARE
@SearchStr nvarchar(100)='ANYVALUE'
BEGIN
-
DECLARE @Results TABLE(CTableName VARCHAR(max),ColumnName nvarchar(370), ColumnValue nvarchar(3630))

SET NOCOUNT ON

DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
SET @TableName = ''
SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')

WHILE @TableName IS NOT NULL
BEGIN
    SET @ColumnName = ''
    SET @TableName = 
    (
        SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
        FROM    INFORMATION_SCHEMA.TABLES
        WHERE       TABLE_TYPE = 'BASE TABLE'
            AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
            AND OBJECTPROPERTY(OBJECT_ID(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)), 'IsMSShipped') = 0
    )

    WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
    BEGIN
        SET @ColumnName =
        (
            SELECT MIN(QUOTENAME(COLUMN_NAME))
            FROM    INFORMATION_SCHEMA.COLUMNS
            WHERE       TABLE_SCHEMA    = PARSENAME(@TableName, 2)
                AND TABLE_NAME  = PARSENAME(@TableName, 1)
                AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar')
                AND QUOTENAME(COLUMN_NAME) > @ColumnName
        )

        IF @ColumnName IS NOT NULL
        BEGIN
            INSERT INTO @Results
            EXEC
            (
                'SELECT ''' + @TableName +''',''' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630)
FROM ' + @TableName + ' (NOLOCK) ' +
                ' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
            )
        END
    END 
END

SELECT CTableName,ColumnName, ColumnValue,
'SELECT ' + ColumnName + ' FROM ' + CTableName + ' WHERE ' + ColumnName + ' = ' +''''+ ColumnValue+'''' AS CopyString , COUNT(*) 'No Of Rows'
FROM @Results
GROUP BY CTableName,ColumnName,ColumnValue
END