I am trying to run a density statement using all of the tables from the AdventureWorksDW2008R2 database. We want all of the density information to dump into a Density table in a separate Density database.When I run the code below:DECLARE @schemaName varchar(500), @dbName varchar(500), @tableName varchar(500), @columnName varchar(500), @columnDataType varchar(500), @columnLength bigint, @sqlStatement varchar(8000), @sqlStatementIdx varchar(1000), @rundate varchar(20) -- Modify the following value based upon the source database name --set @dbName = 'AdventureWorksDW2008R2' set @dbName = 'AdventureWorksDW2008R2' set @schemaName = 'dbo' set @tableName = '' set @columnName = '' set @sqlStatement = '' set @rundate = CONVERT(VARCHAR(20), GETDATE(), 100)-- Use this SQL statement to truncate all rows in the dbo.DensityTable, if refreshing the density information -- TRUNCATE TABLE dbo.DensityTable; DECLARE db_cursor CURSOR FOR select distinct a.table_name as "Table Name", b.column_name, b.DATA_TYPE, isnull(b.CHARACTER_MAXIMUM_LENGTH,0), 'select distinct ''' + a.table_name + ''' as TableName, ''' + b.column_name + ''' as ColumnName, ''' + b.DATA_TYPE + ''' as datatype, ''' + case when b.DATA_TYPE not in ('date','datetime','smalldatetime','bit','float','real') then isnull(cast(b.CHARACTER_MAXIMUM_LENGTH as varchar), cast(b.NUMERIC_PRECISION as varchar) +','+ cast(b.NUMERIC_SCALE as varchar)) else '' end + ''' as data_length, ''' + b.IS_NULLABLE + ''' as nullable, (select count(*) from ' + @schemaName + '.[' + a.table_name + ']) as TotalRows, (select count(*) from ' + @schemaName + '.[' + a.table_name + '] where [' + b.column_name + '] is null) as NullRows, (select count(*) from ' + @schemaName + '.[' + a.table_name + '] where [' + b.column_name + '] like ' + '''' + ' %' + '''' + ') as Val_is_Space, ' + case when b.DATA_TYPE not in ('varchar','char','nvarchar','nchar','text','ntext','date','datetime','smalldatetime') then '(select count(*) from ' + @schemaName + '.[' + a.table_name + '] where [' + b.column_name + '] = 0) as Val_is_Zero, ' when b.DATA_TYPE in ('text','ntext','date','datetime','smalldatetime') then '''''' + ' as Val_is_Zero, ' when b.DATA_TYPE in ('varchar','char','nvarchar','nchar') then '(select count(*) from ' + @schemaName + '.[' + a.table_name + '] where [' + b.column_name + '] = '''+ '0' + ''') as Val_is_Zero, ' end + case when b.DATA_TYPE in ('text','ntext') then '''''' + ' as DistinctVal, ' else '(select count(distinct [' + b.column_name + ']) from ' + @schemaName + '.[' + a.table_name + ']) as DistinctVal, ' end + case when b.DATA_TYPE in ('text','ntext','bit') then '''''' + ' as MinVal, ' else '(select min([' + b.column_name + ']) from ' + @schemaName + '.[' + a.table_name + ']) as MinVal, ' end + case when b.DATA_TYPE in ('text','ntext','bit') then '''''' + ' as NumMinVal, ' else '(select count(*) from ' + @schemaName + '.[' + a.table_name + '] where [' + b.column_name + '] = (select min([' + b.column_name + ']) from ' + @schemaName + '.[' + a.table_name + '])) as NumMinVal, ' end + case when b.DATA_TYPE in ('text','ntext','bit') then '''''' + ' as MaxVal, ' else '(select max([' + b.column_name + ']) from ' + @schemaName + '.[' + a.table_name + ']) as MaxVal, ' end + case when b.DATA_TYPE in ('text','ntext','bit') then '''''' + ' as NumMaxVal, ' else '(select count(*) from ' + @schemaName + '.[' + a.table_name + '] where [' + b.column_name + '] = (select max([' + b.column_name + ']) from ' + @schemaName + '.[' + a.table_name + '])) as NumMaxVal, ' end + case when b.DATA_TYPE not in ('varchar','char','nvarchar','nchar','text','ntext','date','datetime','smalldatetime','bit') then '(select avg(cast([' + b.column_name + ']as bigint)) from ' + @schemaName + '.[' + a.table_name + ']) as Avg_Val, ' else '''''' + ' as Avg_Val,' end + case when b.DATA_TYPE not in ('varchar','char','nvarchar','nchar','text','ntext','date','datetime','smalldatetime','bit') then '(select count(*) from ' + @schemaName + '.[' + a.table_name + '] where [' + b.column_name + '] = (select avg(cast([' + b.column_name + ']as bigint)) from ' + @schemaName + '.[' + a.table_name + '])) as NumAvgVal, ' else '''''' + ' as NumAvgVal,' end + ' (select min(datalength([' + b.column_name + '])) from ' + @schemaName + '.[' + a.table_name + ']) as Min_Length, (select count(*) from ' + @schemaName + '.[' + a.table_name + '] where datalength([' + b.column_name + ']) = (select min(datalength([' + b.column_name + '])) from ' + @schemaName + '.[' + a.table_name + '])) as Num_Min_Length, (select max(datalength([' + b.column_name + '])) from ' + @schemaName + '.[' + a.table_name + ']) as Max_Length, (select count(*) from ' + @schemaName + '.[' + a.table_name + '] where datalength([' + b.column_name + ']) = (select max(datalength([' + b.column_name + '])) from ' + @schemaName + '.[' + a.table_name + '])) as Num_Max_Length, (select avg(datalength([' + b.column_name + '])) from ' + @schemaName + '.[' + a.table_name + ']) as Avg_Length, (select count(*) from ' + @schemaName + '.[' + a.table_name + '] where datalength([' + b.column_name + ']) = (select avg(datalength([' + b.column_name + '])) from ' + @schemaName + '.[' + a.table_name + '])) as Num_Avg_Length,' + '''' + @rundate + '''' + ' as rundate, ''' + a.TABLE_CATALOG + ''' as database_nm, ''' + a.table_schema + ''' as schema_nm from AdventureWorksDW2008R2.INFORMATION_SCHEMA.TABLES where table_schema = ' + '''' + @schemaName + '''' + ' and table_name = ' + '''' + a.table_name + ''';'from AdventureWorksDW2008R2.INFORMATION_SCHEMA.TABLES a inner join AdventureWorksDW2008R2.INFORMATION_SCHEMA.COLUMNS b on a.table_name = b.table_name and a.table_schema = b.table_schemawhere a.TABLE_CATALOG = @dbNameand a.table_schema = @schemaName--and a.table_name in (select Table_Name from dbo.DensityTable_List where Density_Status = 'Okay')--and a.table_name in (select Table_Name from AdventureWorksDW2008R2.INFORMATION_SCHEMA.Tables)and a.table_type = 'BASE TABLE' OPEN db_cursor FETCH NEXT FROM db_cursor INTO @tableName, @columnName, @columnDataType, @columnLength, @sqlStatement WHILE @@FETCH_STATUS = 0 BEGIN --print (@sqlStatement) set @sqlStatementIdx = 'CREATE NONCLUSTERED INDEX [IX_Density_' + @columnName + '] ON ' + @schemaName + '.[' + @tableName + '] ([' + @columnName + '] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]' if @columnDataType <> 'text' and @columnDataType <> 'image' and @columnLength < 900 and @columnLength <> -1 exec (@sqlStatementIdx) INSERT INTO Density.dbo.DensityTable (Table_Name, Column_Name, Datatype, Data_length, Nullable, Total_Rows, Null_Rows, Blank_Rows, Zero_Rows, Distinct_Val, Min_Val, Num_Min_Val, Max_Val, Num_Max_Val, Avg_Val, Num_Avg_Val, Min_Length, Num_Min_Length, Max_Length, Num_Max_Length, Avg_Length, Num_Avg_Length, rundate, database_nm, schema_nm) exec (@sqlStatement) set @sqlStatementIdx = 'drop INDEX [IX_Density_' + @columnName + '] ON ' + @schemaName + '.[' + @tableName + ']' if @columnDataType <> 'text' and @columnDataType <> 'image' and @columnLength < 900 and @columnLength <> -1 exec (@sqlStatementIdx)FETCH NEXT FROM db_cursor INTO @tableName, @columnName, @columnDataType, @columnLength, @sqlStatement END CLOSE db_cursor DEALLOCATE db_cursor
It comes up with this error: Msg 1088, Level 16, State 12, Line 1Cannot find the object "dbo.AdventureWorksDWBuildVersion" because it does not exist or you do not have permissions.Can someone point me in the right direction please?