Используя Переменные среды в T-SQL

Используя SMS Retriever API, вы можете избежать разрешения READ_SMS. Пожалуйста, обратитесь https://android.jlelse.eu/googles-sms-retriever-api-6540eb3c8e9c

5
задан benPearce 13 May 2009 в 04:30
поделиться

5 ответов

Это должно дать вам список (при условии, что вы разрешаете людям выполнять xp_cmdshell)

exec master..xp_cmdshell 'set'

Примечание: xp_cmdshell представляет собой угрозу безопасности ...

Вы также можете сделать это с помощью управляемой хранимой процедуры, расширенной хранимой процедуры или через компонент com.

2
ответ дан 13 December 2019 в 05:41
поделиться

xp_cmdshell обычно лучше избегать из соображений безопасности.

Лучше использовать сборку CLR. Вот хорошее введение в создание сборки CLR .

Вы можете использовать System.Environment.GetEnvironmentVariable () в C # - вы найдете больше информации о том, как это сделать здесь .

2
ответ дан 13 December 2019 в 05:41
поделиться

Спасибо за ответы. Они помогли мне найти рабочее решение, хотя это, вероятно, не самый продвинутый метод:

declare @val varchar(50)
create table #tbl (h varchar(50))
insert into #tbl exec master..xp_cmdshell 'echo %computername%'
set @val = (select top 1 h from #tbl)
drop table #tbl

В частности, я пытался получить имя хоста, echo% computername% можно было заменить системной командой hostname , Но теперь это работает для любой переменной окружения.

2
ответ дан 13 December 2019 в 05:41
поделиться

Эй, если вы хотите получить имя сервера, просто позвоните SELECT @@ SERVERNAME

2
ответ дан 13 December 2019 в 05:41
поделиться

Чтобы «прочитать значение системной переменной среды в сценарии T-SQL», вы можете настроить SQL Management Studio на использование «sqlcmd Mode».

Тогда вы можете использовать это так:

Print '$(TEMP)'

:r $(Temp)\Member.sql
go

Я не уверен, как это делается вне «SQL Management Studio», но это будет сложно выяснить.

3
ответ дан 13 December 2019 в 05:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: