У меня есть сценарий SQL cmd, который выглядит следующим образом:
:setvar DatabaseName testDb
:On Error Exit
--break point on next line
Declare @DBName varchar(255), @DBPath varchar(255), @LogName varchar(255), @LogPath varchar(255)
IF EXISTS (SELECT 1 FROM [master].[dbo].[sysdatabases] WHERE [name] = N'$(DatabaseName)')
BEGIN
USE [$(DatabaseName)];
select @DBName = name, @DBPath = physical_name from sys.database_files where type_desc = 'ROWS'
select @LogName = name , @LogPath = physical_name from sys.database_files where type_desc = 'LOG'
END
Print @dbname
Print @dbpath
Когда я пытаюсь отладить вышеуказанный сценарий в SQL Server Management Studio, строка, которая выделяется как строка, выполняемая в данный момент, кажется, не тот, который выполняет.И основываясь на просмотре локального окна и когда установлен @dbName
, отладчик кажется отключенным на 4 строки (когда выделенная строка является строкой объявления, @dbname
устанавливается со значением из базы данных).
Интересно, если это потому, что отладчик пропускает мои setvar
операторы.Также есть ли обходной путь.Очень сложно отлаживать большой скрипт, когда текущая строка не является текущей строкой !!!