Legen Sie eine benutzerdefinierte datatabelle in eine gespeicherte Prozedur ein

Unten ist der gespeicherte Proc ich habe bis jetzt diesen Fehler bei der Ausführung erhalten: Msg 137, Level 16, State 1, Prozedur db_recession_band_dates_save, Zeile 18 Muss die Skalarvariable "@dates" deklarieren.

ALTER PROCEDURE [dbo].[Dates_Save] @Loc VARCHAR(75), @dates StartEndDateType READONLY AS BEGIN DECLARE @id int SELECT @id = MYINTFIELD FROM date_locations IF @id IS NULL BEGIN INSERT INTO db_recession_bands VALUES (@loc) SET @id = @@IDENTITY END INSERT INTO db_recession_band_dates VALUES (@id,@dates) END 

Wenn startEndDateType ein benutzerdefinierter Tabellen-Typ ist, dann behandeln Sie ihn, als ob es eine Tabelle wäre.

Ändere das:

 INSERT INTO db_recession_band_dates VALUES (@id,@dates) 

In so etwas wie

 INSERT INTO db_recession_band_dates (<COLUMN LIST>) -- don't do blind inserts it will hurt you at some point in the future SELECT @id, <COLUMN LIST> FROM @dates