Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 SP возвращающее строку по составному ключу для разных таблиц  [new]
Zuby
Member

Откуда:
Сообщений: 23
мне надо сделать SP которая бы возвращала мне строку из таблиц по ключу. НО. ключ составной из нескольких столбцов и для разных таблиц разный. Надо както в SP предать список переменных ключа и имя(ID) таблицы и по ним найти данные в нужной таблице. Пока я думаю о передаче ключа в SP как xml, а в самой SP формировать запрос через DSQL.
Но может есть какой-то более лучший способ?
3 дек 12, 05:56    [13566225]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
Zuby
Member

Откуда:
Сообщений: 23
MS SQL Server 10.50.1617.0
3 дек 12, 05:59    [13566226]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
https://www.sql.ru/faq/faq_topic.aspx?fid=104
3 дек 12, 06:48    [13566246]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
Zuby
Member

Откуда:
Сообщений: 23
так и делаю
Но может есть какой-то лучший способ?
3 дек 12, 07:17    [13566275]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104751
Zuby
Но может есть какой-то лучший способ?

Не писать универсальных процедур.
3 дек 12, 10:33    [13566902]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
Zuby
Member

Откуда:
Сообщений: 23
Glory,
шЫкарная логика
-Как мне сделать то-то?
-Не делать этого!

главное с такой логикой не браться за проектирование БД
4 дек 12, 04:30    [13572315]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
Zuby
Glory,
шЫкарная логика
-Как мне сделать то-то?
-Не делать этого!

главное с такой логикой не браться за проектирование БД

Нужно слушать умных людей, а не спорить :)
Вы бы лучше написали подробно, какую задачу вам нужно решить изначально, а то придумали сами себе трудности и теперь их преодолеваете.
4 дек 12, 05:36    [13572342]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
Zuby
Member

Откуда:
Сообщений: 23
Ruuu,
чем это лучше прямого ответа на вопрос "мне надо сделать SP которая бы возвращала мне строку из таблиц по ключу...."?
4 дек 12, 07:55    [13572463]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
Zuby,

Ну, прямой ответ вам уже дали 13566246, затем попытались наставить на путь истинный :)
В общем, дело ваше.
4 дек 12, 08:13    [13572493]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
Zuby
Member

Откуда:
Сообщений: 23
Ruuu,
Чем этот ответ лучше чем "Пока я думаю о передаче ключа в SP как xml, а в самой SP формировать запрос через DSQL"
Мне кажется они очень похожи
4 дек 12, 08:30    [13572527]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104751
Zuby
Glory,
шЫкарная логика
-Как мне сделать то-то?
-Не делать этого!

главное с такой логикой не браться за проектирование БД

Вот именно, что сначала нужно браться за проектирование. А не за написание кода, который по сути выполняет произвольный запрос.

Zuby
Ruuu,
Чем этот ответ лучше чем "Пока я думаю о передаче ключа в SP как xml, а в самой SP формировать запрос через DSQL"
Мне кажется они очень похожи

А имена таблицы и полей в текст запроса как попадут по вашему ? Тоже из xml ?
4 дек 12, 10:36    [13573260]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Zuby,

Написать отдельную процедуру для каждой таблицы и не городить лисапеды с DSQL
4 дек 12, 12:09    [13574112]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
Zuby
Member

Откуда:
Сообщений: 23
Maxx,

и пересобирать приложение каждый раз когда в базе появляется возможность выгрузить данные по новой форме?
4 дек 12, 12:54    [13574563]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
Zuby
Member

Откуда:
Сообщений: 23
Glory,

В SP передается параметр, по которому база вычисляет какие данные от нее просят

И да, как же проектировать базу если логики нет
4 дек 12, 12:57    [13574594]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104751
Zuby
В SP передается параметр, по которому база вычисляет какие данные от нее просят

И как этот параметер определяет из каких таблиц и полей будет составлен результат ?

Zuby
И да, как же проектировать базу если логики нет

Т.е. сначала написать код. А потом уже под него придумать систему. Сильно.
4 дек 12, 12:59    [13574610]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
Zuby
Member

Откуда:
Сообщений: 23
Glory,

SP по полученному ID определяет какой запрос от нее хотят и выполняет его посредством DSQL

Не не не вы все никак не поймете основной принцип
1. Развить в себе логику
2. ??????
3. PROFIT!!!!
4 дек 12, 13:07    [13574673]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104751
Zuby
SP по полученному ID определяет какой запрос от нее хотят и выполняет его посредством DSQL

И как же еще кроме DSQL можно выполнить произвольный запрос, переданный в виде "строки" ?

Zuby
ы все никак не поймете основной принцип
1. Развить в себе логику
2. ??????
3. PROFIT!!!!

0. Научиться принципам проектирования
4 дек 12, 13:10    [13574696]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Zuby,

а патом будет
1. ой чет не то с правами у пользователя
2. ой чет долго выполняеться, а вроде простой план выполнения должен быть
3. ой как не забыть поменять динамический запрос при изменении таблицы
.......
1001. ой 101 таблица ..че делать ,код прочесть невозможно
4 дек 12, 13:29    [13574821]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
так зашёл
Guest
Zuby
SP по полученному ID определяет какой запрос от нее хотят и выполняет его посредством DSQL


Ну и ересь:)

create proc MyVeryCoolQueryCreate
  @id int, 
  @param1 varchar(4000) = null,
  @param2 varchar(4000) = null,
  @param3 varchar(4000) = null,
  @param4 varchar(4000) = null,
  @param5 varchar(4000) = null
as

if @id = 1
begin
  select 'MyCullQuery1 with '+isnull(@param1,'unknown') as CoolMessage1
end else if @id = 2
begin
  select 'MyCullQuery2 with '+isnull(@param1,'unknown')+', '+isnull(@param2,'unknown') as CoolMessage2
end else if @id = 3
begin
  select 'MyCullQuery3 with '+isnull(@param1,'unknown') as CoolMessage3
end else if @id = 4
begin
  select 'MyCullQuery4 with '+isnull(@param1,'unknown')+', '+isnull(@param2,'unknown') as CoolMessage4
end else 
begin 
  select N'error id' as CoolError
end
GO
MyVeryCoolQueryCreate 1, 'p1';
GO
MyVeryCoolQueryCreate 2, null, 'p2';
GO
MyVeryCoolQueryCreate 3, 'p1';
GO
MyVeryCoolQueryCreate 4;
GO
MyVeryCoolQueryCreate 5, 'p1', 'p2';
GO

drop proc MyVeryCoolQueryCreate



А ещё лучше так:

create proc MyVeryCoolQueryCreate 
  @SQL nvarchar(4000)
as
exec(@SQL)

GO

MyVeryCoolQueryCreate N'select ''I create very cool procedire!!!:)''as CoolMessage'

GO

drop proc MyVeryCoolQueryCreate


:D
4 дек 12, 13:32    [13574842]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
Zuby
Member

Откуда:
Сообщений: 23
так зашёл,

да вы лучше так не делайте
с таким походом все будет очень печально

хотя один правильный кусок все таки есть - "SP по полученному ID определяет какой запрос от нее хотят" где-то тут
4 дек 12, 15:04    [13575765]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
Zuby
Member

Откуда:
Сообщений: 23
Maxx,

вы так часто меняете права на одну единственную ХП которая строит запрос и имеет все нужные для этого привилегии?
или вы так часто меняете таблицы после релиза что часто забываете проверить все последствия?

про медленные динамические запросы... ну что сделаете такой же но быстрый и статический)
4 дек 12, 15:14    [13575867]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
Zuby
Member

Откуда:
Сообщений: 23
Glory,

даже не знаю что и ответить...
1.Да! 2.Акваланг!
вас должно удовлетворить
4 дек 12, 15:16    [13575881]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104751
Zuby
вас должно удовлетворить

Мне - пофиг. Я вашей системой пользоваться не буду.
Пользователей жалко.
4 дек 12, 15:17    [13575893]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Zuby,
вообщем - хотите патом разребать весь "гениальный" подход - флаг Вам в руки, только вот есть одна незадача -переделывать проект в продакшине с живыми данными гораздо сложнее,чем изначально продумать грамотную архитектуру ,о чем вам здесь и говорят .
OFFTOP :
"Геройству храбрых" -венки со скидкой
4 дек 12, 15:18    [13575903]     Ответить | Цитировать Сообщить модератору
 Re: SP возвращающее строку по составному ключу для разных таблиц  [new]
Zuby
Member

Откуда:
Сообщений: 23
Glory,
мммм
вот значит с какой целью вы начали постить эту милую нелогичную чушь
4 дек 12, 16:51    [13576693]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить