2009-09-07 2 views
0

В Oracle вы можете использовать &VAR_NAME в скрипте, а затем скрипт попросит вас об этом значении при его запуске.sql server - настройка переменных во время выполнения

В SQLSERVER вы можете использовать $ (имя_переменный) и ссылаться на файл свойств с помощью:

:r c:/TEMP/sqlserver.properties 

And in the property file you have something like: 

    :setvar VAR_NAME_some_value 

Вы можете сделать эквивалент & & var_name поэтому скрипт спросит у вас значение при запуске вместо имея значение, предопределенное в скрипте.

ответ

1

Если я правильно понял, вы говорите о variable substitution with the SQLCMD utility.

Я не вижу, что SQLCMD поддерживает описанное вами поведение.

Альтернативой будет использование того факта, что SQLCMD заменит значения переменных системы или пользовательской среды (см. Ссылку выше) и создаст сценарий CMD оболочки, который запрашивает у пользователя значение переменной с помощью SET with the /P flag ,

0

Там нет ничего в SQL сервере, как это, вы должны заранее определить все значения параметров перед их использованием, например:

DECLARE @i SMALLINT 
SET @i = 1 
0

Проблема с появлением формы и спросом на параметр - это то, что вы обычно хотите скорее контролировать внешний вид формы, даже для скрипта администратора. Я бы использовал подстановку переменных в SQLCMD, из сценария Powershell или Python, чтобы вы могли предоставить парню, работающему под скриптом, более удобной и полезной формой. Это создало бы очень мощную комбинацию.

Вы можете сделать довольно много с заменой переменных шаблона в SSMS, но это было бы только до формулировки правильного SQL для выполнения. вы должны были бы нажать кнопку. Это было бы немного неудобно вне среды разработки!