powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Конвертация переменной в строку
9 сообщений из 9, страница 1 из 1
Конвертация переменной в строку
    #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
Конвертация переменной в строку
    #39786167
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Конвертация переменной в строку
    #39786202
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S_A_V_e,

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

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

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

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

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


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

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



Спасибо за участие и советы.
...
Рейтинг: 0 / 0
Конвертация переменной в строку
    #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
Конвертация переменной в строку
    #39786423
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S_A_V_eОшибся в названии параметра и поэтому он не подставлялся.О, пока писал, вы уже нашли :-)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Конвертация переменной в строку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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