Size: a a a

SqlCom.ru - Стиль жизни SQL

2020 May 29

R

Roman in SqlCom.ru - Стиль жизни SQL
Спасибо! Получилось
источник
2020 May 30

NP

Nickolay Pankov in SqlCom.ru - Стиль жизни SQL
У меня стоит сервак на арч линуксе, сам пишу с машинки на винде.
Мне для курсовой работы нужно придумать какую-нибудь хорошую процедуру. Я решил, что было бы классно сделать процедуру, которая выводила бы результат на диск.
CREATE PROCEDURE ExportVehiclesInfo
AS EXEC xp_cmdshell
'bcp "SELECT Vehicle_Brand, Vehicle_Model, Vehicle_LicensePlate, Vehicle_VIN, Vehicle_Gearbox, VehicleStatus_Condition, VehicleStatus_Fuel, Insurance_Status
FROM Vehicles, VehicleStatuses, Insurances
WHERE VehicleStatuses.Vehicle_ID=Vehicles.Vehicle_ID AND Insurance_ID=Vehicles.Vehicle_ID queryout /var/sql/result.txt -c -S localhost -U SA'
Однако я столкнулся с проблемой, мол, xp_cmdshell отключен
Я подумал окей, включу через sp configure, на что мне выдает сообщение:
15392, уровень: 16, состояние: 2, процедура: sp_configure, строка: 166 [строка начала пакета: 330]
Указанный параметр "xp_cmdshell" не поддерживается в данном выпуске SQL Server и не может быть изменен с помощью процедуры sp_configure. Есть ли какие-либо альтернативы xp_cmdshell, либо методы его включения на линуксе? Про безопасность и прочее я все прекрасно понимаю, но этот сервак чисто для меня и никогда не будет использоваться кроме как в учебных целях
источник

РR

Руслан Ruslan73... in SqlCom.ru - Стиль жизни SQL
Nickolay Pankov
У меня стоит сервак на арч линуксе, сам пишу с машинки на винде.
Мне для курсовой работы нужно придумать какую-нибудь хорошую процедуру. Я решил, что было бы классно сделать процедуру, которая выводила бы результат на диск.
CREATE PROCEDURE ExportVehiclesInfo
AS EXEC xp_cmdshell
'bcp "SELECT Vehicle_Brand, Vehicle_Model, Vehicle_LicensePlate, Vehicle_VIN, Vehicle_Gearbox, VehicleStatus_Condition, VehicleStatus_Fuel, Insurance_Status
FROM Vehicles, VehicleStatuses, Insurances
WHERE VehicleStatuses.Vehicle_ID=Vehicles.Vehicle_ID AND Insurance_ID=Vehicles.Vehicle_ID queryout /var/sql/result.txt -c -S localhost -U SA'
Однако я столкнулся с проблемой, мол, xp_cmdshell отключен
Я подумал окей, включу через sp configure, на что мне выдает сообщение:
15392, уровень: 16, состояние: 2, процедура: sp_configure, строка: 166 [строка начала пакета: 330]
Указанный параметр "xp_cmdshell" не поддерживается в данном выпуске SQL Server и не может быть изменен с помощью процедуры sp_configure. Есть ли какие-либо альтернативы xp_cmdshell, либо методы его включения на линуксе? Про безопасность и прочее я все прекрасно понимаю, но этот сервак чисто для меня и никогда не будет использоваться кроме как в учебных целях
Sqlcmd утилитки нет в поставке для linux? Если есть, можно наверно попробовать перенаправить её вывод в файл
источник

f

f in SqlCom.ru - Стиль жизни SQL
Nickolay Pankov
У меня стоит сервак на арч линуксе, сам пишу с машинки на винде.
Мне для курсовой работы нужно придумать какую-нибудь хорошую процедуру. Я решил, что было бы классно сделать процедуру, которая выводила бы результат на диск.
CREATE PROCEDURE ExportVehiclesInfo
AS EXEC xp_cmdshell
'bcp "SELECT Vehicle_Brand, Vehicle_Model, Vehicle_LicensePlate, Vehicle_VIN, Vehicle_Gearbox, VehicleStatus_Condition, VehicleStatus_Fuel, Insurance_Status
FROM Vehicles, VehicleStatuses, Insurances
WHERE VehicleStatuses.Vehicle_ID=Vehicles.Vehicle_ID AND Insurance_ID=Vehicles.Vehicle_ID queryout /var/sql/result.txt -c -S localhost -U SA'
Однако я столкнулся с проблемой, мол, xp_cmdshell отключен
Я подумал окей, включу через sp configure, на что мне выдает сообщение:
15392, уровень: 16, состояние: 2, процедура: sp_configure, строка: 166 [строка начала пакета: 330]
Указанный параметр "xp_cmdshell" не поддерживается в данном выпуске SQL Server и не может быть изменен с помощью процедуры sp_configure. Есть ли какие-либо альтернативы xp_cmdshell, либо методы его включения на линуксе? Про безопасность и прочее я все прекрасно понимаю, но этот сервак чисто для меня и никогда не будет использоваться кроме как в учебных целях
Если еще актуален вопрос, надо сначала врубить show advanced options.
https://www.mssqltips.com/sqlservertip/1020/enabling-xpcmdshell-in-sql-server/
источник

ГА

Гегам Антонян... in SqlCom.ru - Стиль жизни SQL
Добрый день. Я хочу создать хранимую процедуру, который будет добавлять данные сразу на нескольких таблиц.  Из таблиц один родительский, а все остальные  имеют внешний ключ к этой таблице (сам Id базовой таблицы). Получается что у меня строки в дочерных таблицах может быть  несколько. Получается что я уже их не как одиночный параметр, а как массив буду передать, поискал нашел что можно создать свой тип как таблица и в процедуре передать как параметр. Это правильный подход?? и если да то главная задача этого, чтоб в конце я бы мог из кода C# передать эту таблицу как аргумент? это возможно?
источник

ГА

Гегам Антонян... in SqlCom.ru - Стиль жизни SQL
ИЛИ же просто надо такой запрос вручную писать, который сначала добавит данные в таблиц переменную а потом взывит процедуру?
источник

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
Гегам Антонян
Добрый день. Я хочу создать хранимую процедуру, который будет добавлять данные сразу на нескольких таблиц.  Из таблиц один родительский, а все остальные  имеют внешний ключ к этой таблице (сам Id базовой таблицы). Получается что у меня строки в дочерных таблицах может быть  несколько. Получается что я уже их не как одиночный параметр, а как массив буду передать, поискал нашел что можно создать свой тип как таблица и в процедуре передать как параметр. Это правильный подход?? и если да то главная задача этого, чтоб в конце я бы мог из кода C# передать эту таблицу как аргумент? это возможно?
Такое можно. Подход верный. Далее не понял в чём конкретно проблема, в том что вам надо вставить в другую таблицу из шарпа или из процедуры? Можно и так и так.
источник

ГА

Гегам Антонян... in SqlCom.ru - Стиль жизни SQL
Dmitriy Ivanov
Такое можно. Подход верный. Далее не понял в чём конкретно проблема, в том что вам надо вставить в другую таблицу из шарпа или из процедуры? Можно и так и так.
СПС!!! Я просто потом должен писать клиентское приложение. Я просто не знаю как из кода C# передать как параметр таблицу, кроме как просто с помощью цикла писать запрос ....
источник

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
Гегам Антонян
СПС!!! Я просто потом должен писать клиентское приложение. Я просто не знаю как из кода C# передать как параметр таблицу, кроме как просто с помощью цикла писать запрос ....
источник

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
Гегам Антонян
СПС!!! Я просто потом должен писать клиентское приложение. Я просто не знаю как из кода C# передать как параметр таблицу, кроме как просто с помощью цикла писать запрос ....
Тут прямо step by step
https://www.youtube.com/watch?v=OcgckTIhBCI
источник

ГА

Гегам Антонян... in SqlCom.ru - Стиль жизни SQL
СПС!!!!
источник

NP

Nickolay Pankov in SqlCom.ru - Стиль жизни SQL
Руслан Ruslan73
Sqlcmd утилитки нет в поставке для linux? Если есть, можно наверно попробовать перенаправить её вывод в файл
Она есть, но работает только в терминале напрямую на сервере
Через стороннюю IDE я не могу вызвать sqlcmd
источник

NP

Nickolay Pankov in SqlCom.ru - Стиль жизни SQL
Не, это я делал, конечно. Там дальше уже идёт загвоздка
источник

ГА

Гегам Антонян... in SqlCom.ru - Стиль жизни SQL
Подскажите где у меня ошибка. Пишет "Необходимо объявить табличную переменную "@ttable"  "
источник

k

karb0f0s in SqlCom.ru - Стиль жизни SQL
go разделяет батчи. переменная живет в рамках одного батча.
источник

ГА

Гегам Антонян... in SqlCom.ru - Стиль жизни SQL
karb0f0s
go разделяет батчи. переменная живет в рамках одного батча.
ОК СПС!!!
источник

ГА

Гегам Антонян... in SqlCom.ru - Стиль жизни SQL
И еще вот такая ситуация. У меня есть INSTEAD OF INSERT для таблицы.  При вставке в эту таблицу мне надо чтобы возвращался OUTPUT INSERTED.Id (Identity). Что мне надо писать чтобы из InsteadOf получить это? удаляю все норм, с instead получаю нуль
источник

f

f in SqlCom.ru - Стиль жизни SQL
Nickolay Pankov
Не, это я делал, конечно. Там дальше уже идёт загвоздка
Тогда я не понял в чем загвоздка.
источник

NP

Nickolay Pankov in SqlCom.ru - Стиль жизни SQL
f
Тогда я не понял в чем загвоздка.
sql server на линуксе не умеет в xp_cmdshell, есть ли альтернативы?
источник

NP

Nickolay Pankov in SqlCom.ru - Стиль жизни SQL
источник