Pytanie : Zaopatrzony Procedura Zapętlać etc

Cześć Przedmiot,

Im zaopatrzony procedura który pętla przez stół i konwertyta daktylowy i czas zawiązywać i.e. 20100801 175900 daktylowy czas przedmiot. Ten daktylowy czas przedmiot wtedy chcieć wkładać w inny kolumna. I pisać SP todo musieć ale I utrzymywać the błąd "Musieć the to zmienna "@FirstID"." I rozumieć dlaczego jako tam  wydawać się żadny problem the varible. Jeżeli to móc, lub pomagać to w górę ono być grateful.
(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
ALTER PROCEDURA [dbo]. [wsp_Update_DateTime] (@Table char (50), @TableID char (50), @DateField char (50), @TimeField char (50), @DateTimeField char (50))
	-- Dodawać the parametr dla the zaopatrzony procedura tutaj
	

ZACZYNAĆ
	-- USTAWIAĆ NOCOUNT DALEJ dodawać ekstra rezultat set od
	-- z WYBRANY oświadczenie.
	SET NOCOUNT DALEJ;

	OZNAJMIAĆ @FirstID int
	OZNAJMIAĆ @Date char (20)
	OZNAJMIAĆ @Time char (20)
	OZNAJMIAĆ @DT char (40)
	OZNAJMIAĆ @DateTime datetime

	OZNAJMIAĆ @cmd JAKO NVARCHAR (nvarchar)

	USTAWIAĆ @cmd = N'SELECT @FirstID = Minuta ("+ @TableID + ") OD '+ @Table
	EXEC sp_executesql @cmd 

	PODCZAS GDY @FIRSTID BYĆ NIEOBOWIĄZUJĄCY
	ZACZYNAĆ

		OZNAJMIAĆ @cmd2 jako NVARCHAR (nvarchar);

		USTAWIAĆ @CMD2 = N'SELECT @DATE = "+ @DATEFIELD +", @TIME = "+ @TIMEFIELD +" OD "+ @TABLE +" DOKĄD "+ @TABLEID +" = '+ @TABLE;

		EXEC sp_executesql @cmd2;

		USTALONY @DT = substring (@Date, 1,4) + "-" + substring (@Date, 5,2) + "-" + substring (@Date, 7,2) + '' + substring (@Time, 1,2) +": " + substring (@Time, 3,2) + ": " + substring (@Time, 5,2);

		USTALONY @DateTime = konwertyta (datetime, @DT, 20);

		OZNAJMIAĆ @cmd3 jako NVARCHAR (nvarchar);

		USTAWIAĆ @CMD3 = N'UPDATE "+ @TABLE +" SET "+ @DATETIMEFIELD +" = @DATETIME DOKĄD "+ @TABLEID +" = @FIRSTID';

		EXEC sp_executesql @cmd3; 
	
		OZNAJMIAĆ @cmd4 JAKO NVARCHAR (nvarchar)

		USTAWIAĆ @cmd4 = N'SELECT @FirstID = Minuta ("+ @TableID + ") OD "+ @Table +" DOKĄD "+ @TableID +" > @FirstID';
		
		EXEC sp_executesql @cmd4 

	KOŃCÓWKA

Odpowiedź : Zaopatrzony Procedura Zapętlać etc

I zaczynać nie using Dynamiczny SQL dokąd ewentualny.  W Ten Sposób w inny słowo zamiast w the stół i the kolumna mieć Zaopatrzony Procedura dla zaopatrzony stół.  Twój AKTUALIZACJA oświadczenie móc zmniejszać:

AKTUALIZOWAĆ YourTableName
USTAWIAĆ YourDateTimeColumn = KONWERTYTA (datetime, MATERIAŁ (MATERIAŁ (MATERIAŁ (MATERIAŁ (YourDateCharColumn, 5, (0), "-"), 8, (0), "-"), 14, (0), ": "), 17, (0), ": "), 120)
DOKĄD YourTableID = @FirstID
Inne rozwiązania  
 
programming4us programming4us