Результаты поиска
Какой язык вы используете для PostgreSQL триггеров и хранимых процедур?
PostgreSQL интересен тем, что он поддерживает несколько языков для написания хранимых процедур. Какой из них вы используете, и почему?
Вставляйте обновление хранимой процедуре на сервере SQL
Я написал сохраненный proc, который будет выполнять обновление, если запись существует, в противном случае он будет выполнять вставку. Это выглядит примерно так:
update myTable set Col1=@col1, Col2=@col2 where ID=@ID
if @@rowcount = 0
insert into myTable (Col1, Col2) values (@col1, @col2)
Моя логика написания его таким образом заключается в том, что обновление будет выполнять неявный выбор с помощью предложения where, и если это возвращает 0, то вставка будет иметь место.
Альтернативой этому способу было бы сделать выбор, а затем на основе количества возвращенных строк либо выполнить обновление, либо вставить. Это я посчитал неэффективным, потому что если вы собираетесь сделать обновление, это вызовет 2 выбора (первый явный вызов select и второй неявный в where обновления). Если бы proc должен был сделать вставку, то не было бы никакой разницы в эффективности.
Разве моя логика здесь верна? Это то, как вы бы объединили вставку и обновление в сохраненный proc?
LINQ-to-SQL против хранимых процедур?
Я взглянул на сообщение "Beginner's Guide to LINQ" здесь на StackOverflow ( руководство для начинающих к LINQ ), но у меня был следующий вопрос:
Мы собираемся развернуть новый проект, где почти все наши операции с базой данных будут довольно простыми извлечениями данных (есть еще один сегмент проекта, который уже записывает данные). Большинство наших других проектов до этого момента используют хранимые процедуры для таких вещей. Однако я хотел бы использовать LINQ-to-SQL, если это имеет больше смысла.
Итак, вопрос заключается в следующем: Для простого извлечения данных, какой подход лучше, LINQ-to-SQL или сохраненные procs? Какие-то конкретные " за " или "против"?
Спасибо.
Каковы плюсы и минусы сохранения SQL в сохраненных Procs по сравнению с кодом
Каковы преимущества / недостатки сохранения SQL в исходном коде C# или в сохраненных Procs? Я обсуждал это с другом в рамках проекта с открытым исходным кодом, над которым мы работаем (C# ASP.NET Forum). На данный момент большая часть доступа к базе данных осуществляется путем построения SQL inline в C# и вызова SQL Server DB. Поэтому я пытаюсь установить, что для этого конкретного проекта было бы лучше всего.
Пока что у меня есть:
Преимущества Для в код:
- Проще в обслуживании - не нужно запускать скрипт SQL для обновления запросов
- Проще портировать на другой DB-нет procs для порта
Преимущества хранимых процедур:
- Спектакль
- Безопасность
Автономные средства отладки хранимых процедур
Я искал хороший бесплатный отладчик для STP (хранимых процедур), поскольку мне нужно внести изменения в некоторые из них в рамках моего недавнего проекта. Хранимые процедуры хранятся в независимых файлах .sql , а не в коде.
В моем случае отладчик значительно ускорит процесс. Может ли кто-нибудь порекомендовать какие-либо инструменты, которые могут быть использованы для этого?
Запрос таблицы объединения с полями в виде столбцов
Я не совсем уверен, возможно ли это, или попадает в категорию таблиц pivot, но я решил, что пойду к профессионалам, чтобы увидеть.
У меня есть три основные таблицы: Card, Property и CardProperty. Поскольку карты не имеют одинаковых свойств и часто имеют несколько значений для одного и того же свойства, я решил использовать подход union table для хранения данных вместо того, чтобы иметь действительно большую структуру столбцов в моей карточной таблице.
Таблица свойств-это базовая таблица типов ключевых слов и значений. Таким образом, у вас есть ключевое слово ATK и значение, присвоенное ему. Существует еще одно свойство, называемое SpecialType, для которого карта может иметь несколько значений, например "Sycnro" и "DARK"
Я бы хотел создать представление или хранимую процедуру, которая дает мне идентификатор карты, имя карты и все ключевые слова свойств, назначенные карте в виде столбцов, и их значения в ResultSet для указанной карты. Поэтому в идеале у меня был бы результирующий набор, например:
ID NAME SPECIALTYPE
1 Red Dragon Archfiend Synchro
1 Red Dragon Archfiend DARK
1 Red Dragon Archfiend Effect
и я мог бы подсчитать свои результаты таким образом.
Я думаю, что даже slicker будет просто объединять свойства вместе на основе их ключевого слова, поэтому я мог бы создать ResultSet как:
1 Red Dragon Archfiend Synchro/DARK/Effect
..но я не знаю, возможно ли это.
Помогите мне stackoverflow Кеноби! Ты моя единственная надежда.
Автономные средства отладки хранимых процедур
Я искал хороший бесплатный отладчик для STP (хранимых процедур), поскольку мне нужно внести изменения в некоторые из них в рамках моего недавнего проекта. Хранимые процедуры хранятся в независимых файлах .sql , а не в коде.
В моем случае отладчик значительно ускорит процесс. Может ли кто-нибудь порекомендовать какие-либо инструменты, которые могут быть использованы для этого?
Запрос таблицы объединения с полями в виде столбцов
Я не совсем уверен, возможно ли это, или попадает в категорию таблиц pivot, но я решил, что пойду к профессионалам, чтобы увидеть.
У меня есть три основные таблицы: Card, Property и CardProperty. Поскольку карты не имеют одинаковых свойств и часто имеют несколько значений для одного и того же свойства, я решил использовать подход union table для хранения данных вместо того, чтобы иметь действительно большую структуру столбцов в моей карточной таблице.
Таблица свойств-это базовая таблица типов ключевых слов и значений. Таким образом, у вас есть ключевое слово ATK и значение, присвоенное ему. Существует еще одно свойство, называемое SpecialType, для которого карта может иметь несколько значений, например "Sycnro" и "DARK"
Я бы хотел создать представление или хранимую процедуру, которая дает мне идентификатор карты, имя карты и все ключевые слова свойств, назначенные карте в виде столбцов, и их значения в ResultSet для указанной карты. Поэтому в идеале у меня был бы результирующий набор, например:
ID NAME SPECIALTYPE
1 Red Dragon Archfiend Synchro
1 Red Dragon Archfiend DARK
1 Red Dragon Archfiend Effect
и я мог бы подсчитать свои результаты таким образом.
Я думаю, что даже slicker будет просто объединять свойства вместе на основе их ключевого слова, поэтому я мог бы создать ResultSet как:
1 Red Dragon Archfiend Synchro/DARK/Effect
..но я не знаю, возможно ли это.
Помогите мне stackoverflow Кеноби! Ты моя единственная надежда.
Что лучше: специальные запросы или хранимые процедуры?
Предполагая, что вы не можете использовать LINQ по какой-либо причине, лучше ли размещать ваши запросы в хранимых процедурах или же лучше выполнять специальные запросы к базе данных (например, SQL Server для аргументации)?
Хранимая процедура и время ожидания
Я запускаю длинную хранимую процедуру процесса.
Мне интересно, если в случае тайм-аута или любого случая отключения с базой данных после инициирования вызова хранимой процедуры. Он все еще работает и реализует изменения на сервере?
Асинхронные Вызовы Хранимых Процедур
Можно ли вызвать хранимую процедуру из другой хранимой процедуры асинхронно?
Edit: в частности, я работаю с базой данных DB2.