Procedura dla 2 tabel na raz

0

Witam. Zacznę od początku.
Baza na której pracuje jest czystko przykładowa (wiem, że pola mają zadeklarowane złe typy bo przerabiałem tę bazę na potrzeby różnych procedur, ale chodzi mi tylko o samo działanie tej procedury, o samo wykonanie takiej procedury)
Baza ma 3 tabele (tyle wystarczy do przeprowadzenia tej operacji)
Tabela
KLIENT_TAB - KLIENT_ID (pk,int), KLIENT_NAZWA(int)
WYJAZDY_TAB - WYJAZDY_ID(pk, int), WYJAZDY_NAZWA(varchar)
MIESZ_TAB- MIESZ_ID(pk,int), KLIENT_ID(fk, int),WYJAZDY_ID(fk,int)

Procedurę dodającą naraz wiele rekordów KLIENT_NAZWA mam już opracowaną za pomocą pętli whlie i działa ale chce mieć nową procedurę, która będzie miała jeszcze jeden parametr (podany z ręki) WYJAZDY_ID, wprowadzała mi te rekordy KLIENT_NAZWA do tabeli mieszającej z podanym z ręki WYJAZD_ID
mój kod jest następujący:

 
CREATE PROCEDURE MIESZ_INSERT
@a int, 
@b int,
@wyjazd_id int
AS 
BEGIN
DECLARE @i int = @a
WHILE @i < @b
BEGIN
INSERT INTO KLIENT_TAB (KLIENT_NAZWA)
VALUES (@i)
INSERT INTO MIESZ_TAB (KLIENT_ID, WYJADY_ID)
SELECT KLIENT_ID
FROM KLIENT_TAB
WHERE KLIENT_NAZWA = @i
*

SET @i = @i + 1
END

END

I w miejscu gdzie jest * chcę podać parametr WYJAZDY_ID ale sql pod żadną postacią nie chce mi tego przyjąć...
i tu leży mój problem. Czy da się w ogóle jednocześnie wywołać insert select i dodatkowo dopisać mu paramert z ręki?
Z góry dzięki za pomoc.

0
ALTER PROCEDURE [dbo].[MIESZ_INSERT]
@a int, 
@b int,
@wyjazd_id int
AS 
BEGIN
DECLARE @i int = @a
WHILE @i < @b
BEGIN
INSERT INTO KLIENT_TAB (KLIENT_NAZWA, KLIENT_DATE)
VALUES (@i, GETDATE())
INSERT INTO MIESZ_TAB (HKLIENT_ID, WYJADY_ID)
SELECT KLIENT_ID, @wyjazd_id
FROM KLIENT_TAB
WHERE  KLIENT_DATE = GETDATE() AND KLIENT_NAZWA = @i
SET @i = @i + 1
END

END 

Już działa ale teraz podczas przerobienia inny problem Co użyć zamiast GETDATE() aby pobrało mi tylko i wyłącznie datę ale bez godziny. Chce tylko dzień misiąc i rok

0

http://www.mssqltips.com/sqlservertip/1145/date-and-time-conversions-using-sql-server/

TL;DR: to zalezy od wersji

W 2005 musialbys to konwertowac na varchar, od 2008 masz juz typ DATE

1 użytkowników online, w tym zalogowanych: 0, gości: 1