![]() |
MSSQL. Stored procedures
Тут такая проблемка. Есть сабжевый сервер. Через Enterprise Manages создал там процедуру для базы. Обозвал, допустим, GetTotalTime. В процедуре три параметра. Проверку она прошла и сохранилась.
Теперь вот пытаюсь использовать её, а мне queryBuilder отвечает, что неизвестная процедура и все тут. Может, я что-то не так делаю с её вызовом? Первый раз пользую процедуры, так что не до конца понимаю суть проблемы... Уже битый час читаю хелп и книжку. Примерный текст: Код:
CREATE PROCEDURE dbo.GetTotalTime Код:
GetTotalTime(MWDB.ID,DATEADD(Mm,-1,GETDATE()),DATEADD(Dd,-1,GETDATE())) |
Обычно пишут так:
EXEC <имя процедуры> <параметры> Всё через пробелы. Ещё проверь в Query Analyzer в верху в выпадающем списке чтобы была твоя база, а не какая-нибудь master. Почитай Book Online, там всё хорошо описано. |
Также можно написать так:
use имя_базы exec имя_процедуры аргументы Где имя_базы это та база где должна храниться процедура |
Цитата:
надо типа так: use [<Имя базы>] go declare @datenow smalldatetime set @datenow = getdate() exec dbo.GetTotalTime(MWDB.ID,DATEADD(Mm,-1,@datenow),DATEADD(Dd,-1,@datenow)) |
Мне по курсовику надо написать много триггеров для MSSQL Server 2005 EE. Начал с самого простого, но не получается. Есть табличка:
Код:
CREATE TABLE [dbo].[articles]( Код:
CREATE TRIGGER trigger1 ON dbo.articles |
Kvarx, так как инсерт уже произошел, то @article_id у тебя будет всегда равна только что вставленой записи.
Если надо обезательно триггером, то исспользуй INSTEAD OF INSERT, и сам вручную вставляй после проверки. Ну а если по доброму это делать, то надо уникальный индекс построить по полю name без всяких триггеров :) |
Цитата:
Разобрался с триггерами, сделал вот так: Код:
ALTER TRIGGER [dbo].[trigger1] ON [dbo].[articles] 1) Вроде из процедуры можно вернуть значение только целого типа. Но в задании надо как-то вернуть строку, а в другом целых два значения :idontnow: 2) И можно ли передать как параметр массив значений? |
Цитата:
Код:
CREATE PROCEDURE p_test_s Цитата:
http://www.sql.ru/subscribe/2003/146.shtml#9 Лично мне было нужно только несколько раз, я исспользовал строку, которую потом парсил и составлял из нее таблицу. |
Gunslinger,
Очень помогло :yees: Не подскажешь, почему триггеры в реальных проектах не особо применяются? И чем они заменяются? Сам нашел обсуждение на эту тему: _http://www.sql.ru/forum/actualthread.aspx?tid=10801&hl=%f2%f0%e8%e3%e3%e5%f0%fb |
Цитата:
Часто (в достаточно простых случаях правда) заменить можно ограничениями на значения и модификацией данных только из хранимых процедур, с проверками в них. |
Часовой пояс GMT +4, время: 18:06. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.