Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как правильно готовить sysname?  [new]
Шыфл
Member

Откуда: Прага
Сообщений: 774
Читаю и понимаю, что именно это мне и нужно! Только без sqlcmd
BOL
Кроме того, переменные сценария, которые в нем содержатся, задаются с помощью параметра -v. В следующем скрипте (имя файла testscript.sql) ColumnName является переменной скрипта.
USE AdventureWorks2012;

SELECT x.$(ColumnName)
FROM Person.Person x
WHERE x.BusinessEntityID < 5;

Кроме того, с помощью параметра -v можно указать имя возвращаемого столбца:
sqlcmd -v ColumnName ="FirstName" -i c:\testscript.sql


Есть ли такой синтаксис, чтобы динамику не ваять, аля
declare @ColumnName sysname='somestuff'

SELECT x.$(@ColumnName)
FROM Person.Person x

ЮЮЮ
10 май 17, 11:43    [20468380]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно готовить sysname?  [new]
uaggster
Member

Откуда:
Сообщений: 767
Шыфл
Есть ли такой синтаксис, чтобы динамику не ваять, аля
declare @ColumnName sysname='somestuff'

SELECT x.$(@ColumnName)
FROM Person.Person x


В SSMS режим sqlcmd включи.
10 май 17, 12:21    [20468577]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно готовить sysname?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30778
Шыфл
Только без sqlcmd
Если без sqlcmd, то нужно, что бы программа, отправляющая серверу команды, это понимала.
Если эта программа SSMS, то нужно включить такой режим, притом он есть только в последних версиях.
Если же эта программа - ваша собственная, то нужно делать самому, стандартные средства доступа такого не умеют.
10 май 17, 13:13    [20468859]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно готовить sysname?  [new]
invm
Member

Откуда: Москва
Сообщений: 9122
Шыфл,

Вы путаете скриптовую переменную с переменной T-SQL. Как вы хотите работать не будет даже в режиме sqlcmd.
Вот так будет:
:setvar ColumnName name

SELECT top (10) $(ColumnName)
FROM sys.objects
10 май 17, 14:22    [20469237]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно готовить sysname?  [new]
Шыфл
Member

Откуда: Прага
Сообщений: 774
alexeyvg
Шыфл
Только без sqlcmd
Если без sqlcmd, то нужно, что бы программа, отправляющая серверу команды, это понимала.
Если эта программа SSMS, то нужно включить такой режим, притом он есть только в последних версиях.
Если же эта программа - ваша собственная, то нужно делать самому, стандартные средства доступа такого не умеют.


Хотелось бы, чтобы это умели процедуры сервера - принимать на вход параметры таблицы и столбцов, которые выбирать
10 май 17, 15:21    [20469551]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно готовить sysname?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7399
Шыфл,

это в принципе неверно, Ad Hoc запросы должен готовить клиент. Так оно работает - сервер выполняет запросы, приложение эти запросы составляет.
10 май 17, 15:27    [20469595]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить