DECLARE @TABLE_NAME AS NVARCHAR(1000)
SET @TABLE_NAME = 'Dim_Date'
DECLARE @SCHEMA_NAME AS NVARCHAR(1000)
SET @SCHEMA_NAME = 'dbo'
DECLARE @OBJECT_ID AS BIGINT
SET @OBJECT_ID = (SELECT TOP 1 object_id FROM sys.objects WHERE NAME = @TABLE_NAME AND schema_id = (
SELECT TOP 1 schema_id FROM sys.schemas WHERE name = @SCHEMA_NAME)
)
DECLARE @TABLE_ROW AS TABLE (
Id INT,
name VARCHAR(100)
)
INSERT INTO @TABLE_ROW (Id,[name])
SELECT ROW_NUMBER() OVER (ORDER BY column_id),name FROM sys.columns
WHERE object_id = @OBJECT_ID
AND is_identity = 0
ORDER BY column_id
DECLARE @Columns AS VARCHAR(4000)
SET @Columns = (
select stuff(list,1,1,'')
from (
select ',' + cast(QUOTENAME(name) as varchar(4000)) as [text()]
from @TABLE_ROW
for xml path('')
) as Sub(list)
)
DECLARE @SelectColumns AS VARCHAR(4000)
SET @SelectColumns = (
select stuff(list,1,1,'')
from (
select ', N''''''+CONVERT(VARCHAR(8000), ISNULL('+cast(QUOTENAME(name) as varchar(4000))+',''''))+''''''' --',' + cast(name as varchar(16)) as [text()]
from @TABLE_ROW
for xml path('')
) as Sub(list)
)
SELECT @Columns,@SelectColumns
SELECT * FROM @TABLE_ROW
DECLARE @SQL_STR AS VARCHAR(MAX)
SET @SQL_STR = '
SELECT ''INSERT INTO ['+ @SCHEMA_NAME+ '].['+ @TABLE_NAME + '] ( '+@Columns+') VALUES ('+@SelectColumns+')''
FROM ['+ @SCHEMA_NAME+ '].['+ @TABLE_NAME + ']
'
EXEC ( @SQL_STR)