|
1 | | -SET ANSI_NULLS ON |
| 1 | +use master |
| 2 | +go |
| 3 | + |
| 4 | +SET ANSI_NULLS ON |
2 | 5 | GO |
3 | 6 | SET QUOTED_IDENTIFIER ON |
4 | 7 | GO |
@@ -2256,26 +2259,32 @@ BEGIN |
2256 | 2259 | ELSE IF @CurrentIsExtenalTable = 1 AND @ExternalTables = 'REBUILD' AND @Version >= 13 |
2257 | 2260 | BEGIN |
2258 | 2261 |
|
2259 | | - SET @ExternalTableColumnListCommand = @ExternalTableColumnListCommand + 'SELECT columns.name ' |
2260 | | - + 'FROM sys.external_tables as external_tables ' |
2261 | | - + 'INNER JOIN SYS.external_table_columns AS external_table_columns ON external_tables.object_id = external_table_columns.object_id ' |
2262 | | - + 'INNER JOIN sys.columns as columns on external_table_columns.column_id = columns.column_id ' |
2263 | | - + 'AND external_tables.object_id = columns.object_id ' |
2264 | | - + 'WHERE external_tables.name = ' + QUOTENAME(@CurrentObjectName, '''') + ' ' |
2265 | | - + 'AND external_tables.schema_id = ' + CAST(@CurrentSchemaID AS varchar(100)) +';' |
2266 | | - |
2267 | | - |
| 2262 | + SET @ExternalTableColumnListCommand = 'SELECT columns.name ' |
| 2263 | + + 'FROM sys.external_tables as external_tables ' |
| 2264 | + + 'INNER JOIN SYS.external_table_columns AS external_table_columns ON external_tables.object_id = external_table_columns.object_id ' |
| 2265 | + + 'INNER JOIN sys.columns as columns on external_table_columns.column_id = columns.column_id ' |
| 2266 | + + 'AND external_tables.object_id = columns.object_id ' |
| 2267 | + + 'INNER JOIN sys.stats AS stats on external_tables.object_id = stats.object_id ' |
| 2268 | + + 'INNER JOIN sys.stats_columns AS stats_columns on stats.object_id = stats_columns.object_id ' |
| 2269 | + + 'AND columns.column_id = stats_columns.column_id ' |
| 2270 | + + 'AND stats.stats_id = stats_columns.stats_id ' |
| 2271 | + + 'WHERE external_tables.name = ' + QUOTENAME(@CurrentObjectName, '''') + ' ' |
| 2272 | + + 'AND external_tables.schema_id = ' + CAST(@CurrentSchemaID AS varchar(100)) |
| 2273 | + + 'AND stats.name = ' + QUOTENAME(@CurrentStatisticsName,'''') +';' |
2268 | 2274 |
|
2269 | 2275 | INSERT INTO @tmpExternalTableColumnList (ColumnName) |
2270 | 2276 | EXECUTE @CurrentDatabase_sp_executesql @stmt = @ExternalTableColumnListCommand |
2271 | | - |
| 2277 | + |
2272 | 2278 | SET @CurrentCommand += 'DROP STATISTICS ' + QUOTENAME(@CurrentSchemaName) + '.' + QUOTENAME(@CurrentObjectName) + '.' + QUOTENAME(@CurrentStatisticsName) + ';' |
2273 | 2279 | SET @CurrentCommand += 'CREATE STATISTICS ' + QUOTENAME(@CurrentStatisticsName) + ' ON ' + QUOTENAME(@CurrentSchemaName) + '.' + QUOTENAME(@CurrentObjectName) + '(' |
| 2280 | + |
2274 | 2281 | SELECT @CurrentCommand += QUOTENAME(T.ColumnName) + ',' |
2275 | 2282 | FROM @tmpExternalTableColumnList AS T |
2276 | 2283 |
|
2277 | 2284 | SET @CurrentCommand = LEFT(@CurrentCommand, LEN(@CurrentCommand)-1) + ') ' |
2278 | 2285 |
|
| 2286 | + DELETE FROM @tmpExternalTableColumnList |
| 2287 | + |
2279 | 2288 | END |
2280 | 2289 |
|
2281 | 2290 | IF @CurrentMaxDOP IS NOT NULL AND ((@Version >= 12.06024 AND @Version < 13) OR (@Version >= 13.05026 AND @Version < 14) OR @Version >= 14.030154) AND @CurrentIsExtenalTable = 0 |
|
0 commit comments