USE [replTransVas];
GO
SET NOCOUNT ON;
DECLARE @errors TABLE (
viewName nvarchar(517),
errorNumber int,
errorMessage nvarchar(4000)
);
DECLARE @name nvarchar(517), @sql nvarchar(max);
DECLARE views_cursor CURSOR LOCAL FAST_FORWARD FOR
SELECT QUOTENAME(SCHEMA_NAME(schema_id)) + N'.' + QUOTENAME(name)
FROM sys.views
WHERE is_ms_shipped = 0;
OPEN views_cursor;
FETCH NEXT FROM views_cursor INTO @name;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql = N'SELECT * FROM ' + @name + N';';
BEGIN TRY
INSERT INTO @errors
SELECT DISTINCT @name, error_number, error_message
FROM sys.dm_exec_describe_first_result_set(@sql, NULL, 0)
WHERE error_number IS NOT NULL;
END TRY
BEGIN CATCH
INSERT INTO @errors
VALUES (@name, ERROR_NUMBER(), ERROR_MESSAGE());
END CATCH;
FETCH NEXT FROM views_cursor INTO @name;
END;
CLOSE views_cursor;
DEALLOCATE views_cursor;
SELECT DB_NAME() AS databaseName, *
FROM @errors
ORDER BY viewName;