Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Конвертация переменной в строку / 9 сообщений из 9, страница 1 из 1
14.03.2019, 17:18
    #39786163
S_A_V_e
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертация переменной в строку
Здравствуйте.


У меня есть файл (base.sql) следующего вида:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
:out result.sql

:setvar sourceTable "SrcData"
:setvar targetTable "TrgData"


SET NOCOUNT ON


:r Merge.sql




Этот файл запускается *.bat файлом:

Код: sql
1.
sqlcmd -S 192.168.255.10 -U Usr -P 123 -i base.sql -h -1 -y 8000



В файле Merge.sql мне нужно получить значение переменной sourceTable в виде строки. Т.е. выполнить что то вроде такого:

Код: sql
1.
DECLARE @sourceTable nvarchar(100) = $(sourceTable);




В переменную @sourceTable должно записаться значение 'SrcData'.

Параметр $(sourceTable) нормально подставляется в запросы вида
Код: sql
1.
select … from $(sourceTable)

. Но получить из него строку никак не удаётся.
Возможно ли это сделать и если да то как ?
...
Рейтинг: 0 / 0
14.03.2019, 17:28
    #39786167
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертация переменной в строку
...
Рейтинг: 0 / 0
14.03.2019, 18:56
    #39786202
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертация переменной в строку
S_A_V_e,

Код: sql
1.
DECLARE @sourceTable nvarchar(100) = '$(sourceTable)';
...
Рейтинг: 0 / 0
14.03.2019, 23:42
    #39786293
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертация переменной в строку
S_A_V_e,

Это простая макроподстановка. Переменная заменяется на набор символов, указанных для значения переменной.
...
Рейтинг: 0 / 0
15.03.2019, 08:51
    #39786396
S_A_V_e
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертация переменной в строку
Владислав Колосов
Это простая макроподстановка. Переменная заменяется на набор символов, указанных для значения переменной.

Да, но преобразовать эти символы в строку не удаётся

Эти варианты не работают:
Код: sql
1.
2.
DECLARE @sourceTable nvarchar(100) = '$(sourceTable)'; -- подставляется как строка '$(sourceTable)'
DECLARE @sourceTable nvarchar(100) = ''''$(sourceTable)''''; -- Incorrect syntax near '$'
...
Рейтинг: 0 / 0
15.03.2019, 09:04
    #39786403
4d_monster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертация переменной в строку
S_A_V_e,

А если разделить на две строки?
Код: sql
1.
2.
DECLARE @sourceTable nvarchar(100)
SET @sourceTable = '$(sourceTable)'
...
Рейтинг: 0 / 0
15.03.2019, 09:34
    #39786416
S_A_V_e
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертация переменной в строку
Извиняюсь, ввёл в заблуждение... Ошибся в названии параметра и поэтому он не подставлялся.


Вот этот вариант правильный и работает:

Код: sql
1.
DECLARE @sourceTable nvarchar(100) = '$(sourceTable)';



Спасибо за участие и советы.
...
Рейтинг: 0 / 0
15.03.2019, 09:42
    #39786422
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертация переменной в строку
S_A_V_eЭти варианты не работают:
Код: sql
1.
DECLARE @sourceTable nvarchar(100) = '$(sourceTable)'; -- подставляется как строка '$(sourceTable)'

Странно, а у меня это работает
ИМХО вы где то запустались с переменными, областью действия и т.д.
Вы же тестируете на простом скрипте?
Просто скопируйте и запустите:
Код: sql
1.
2.
3.
4.
:setvar sourceTable "SrcData"

DECLARE @sourceTable nvarchar(100) = '$(sourceTable)';
select @sourceTable as sourceTable
...
Рейтинг: 0 / 0
15.03.2019, 09:43
    #39786423
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертация переменной в строку
S_A_V_eОшибся в названии параметра и поэтому он не подставлялся.О, пока писал, вы уже нашли :-)
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Конвертация переменной в строку / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]