Declare cSelect Cursor For ( Select Kategori_ID From tbl_Menu ) Open cSelect Fetch Next From cSelect Into @Kategori_ID While (@@Fetch_Status = 0) Begin If @Temp_Kategori_ID2 Is NULL Begin Set @Temp_Kategori_ID = @Kategori_ID End Else Begin Set @Temp_Kategori_ID = @Temp_Kategori_ID + \', \' + @Kategori_ID End Fetch Next From cSelect Into @Kategori_ID End Close cSelect Deallocate cSelect Print @Temp_Kategori_ID2 Select * From tbl_Kategori Where Kategori_Sub_ID in (@Temp_Kategori_ID) End
Set @Temp_Kategori_ID = @Temp_Kategori_ID + \', \' + @Kategori_ID
Skal ændres til:
Set @Temp_Kategori_ID = @Temp_Kategori_ID + \',\' + CONVERT(varchar(50), @Kategori_ID)
Problemet er, at du forsøger at bruge + operatoren på en varchar og en int. MS SQL vil derfor helst bruge int, men eftersom din @Temp_Kategori_ID er kommet til at indeholde strengen \"7,3\" forsøger den at plusse 7,3 og f.eks. 5. Og det kan den jo ikke, fordi den ikke kan konvertere 7,3 til en int!
Nej desværre - jeg får fejlen: Syntax error converting the varchar value \'Select * From tbl_Kategori Where Kategori_Sub_ID in (\' to a column of data type int.
Og jeg har fulgt dine anvisninger:
Declare @Temp varchar(255) set @Temp = \'Select * From tbl_Kategori Where Kategori_Sub_ID in (\' + @Temp_Kategori_ID + \')\' exec (@Temp)
Er du sikker på, at du ikke i mellemtiden er kommet til at lave din @Temp_Kategori_ID om til en int? For i dit første spørgsmål står den jo som en varchar(50)
@Temp_Kategori_ID hedder rent faktisk @Temp_Kategori_ID2 i min kode, fordi at jeg anvender @Temp_Kategori_ID andensteds.
Så jeg klippe/klistrede dit eksempel ind i koden: set @Temp = \'Select * From tbl_Kategori Where Kategori_Sub_ID in (\' + @Temp_Kategori_ID + \')\'
Også var balladen der.
Jeg ændrede så @Temp_Kategori_ID til @Temp_Kategori_ID2 da denne indeholdte værdierne, også virkede det.
Så endnu gang - mange tak :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.