CREATE PROCEDURE [dbo].SQLColumnDependencyAppend
@TempTableName NVARCHAR(MAX) OUTPUT,
@DATABASE NVARCHAR(MAX),
@SQL NVARCHAR(MAX),
@TruncateTable BIT = 0
AS
SET NOCOUNT ON
DECLARE @SQLTemp VARCHAR(MAX)
SET @TempTableName = '##' + REPLACE(@TempTableName, '#', '')
IF OBJECT_ID('tempdb..' + @TempTableName) IS NULL
EXEC('CREATE TABLE ' + @TempTableName + ' (
Id INT NOT NULL,
DatabaseName VARCHAR(256) NOT NULL,
SchemaName VARCHAR(256) NOT NULL,
TableName VARCHAR(256) NOT NULL,
ColumnName VARCHAR(256) NOT NULL)
')
ELSE
IF @TruncateTable = 1
EXEC('TRUNCATE TABLE ' + @TempTableName)
SET @SQLTemp = 'INSERT ' + @TempTableName + '(Id, DatabaseName, SchemaName, TableName, ColumnName)
EXEC dbo.SQLColumnDependencyGet @DATABASE = ''' + @DATABASE + ''', @SQL = ''' + REPLACE(@SQL, '''', '''''') + ''''
EXEC(@SQLTemp)
/*
EXEC [dbo].SQLColumnDependencyAppend
@TempTableName = 'Test',
@DATABASE = 'Diablo',
@SQL = 'EXEC common.usp_Init_Database',
@TruncateTable = 1
SELECT * FROM ##test
*/