Jesper TMedlem sedan nov. 20017 058 inlägg Två frågor.
1. Jag har en kolumn i tabellen tbl (fetmarkerad i kod) som heter id, den krockar med temptabellens kolumn id, går det att byta namn på temptabellens kolumn (id) ?
Eller hur gör man här?
Byta namn på kolumnen i tabellen tbl är uteslutet.
2. Går denna procedur att göra om till en funktion så att man bara skickar in sql-satsen?
I.s.f. hur?
CREATE PROCEDURE Paging
(
@num_rec_page int, @n_page int
)
AS
SET NOCOUNT ON
BEGIN
declare @max_rec as int
declare @min_rec as int
declare @num_tot_page as int
declare @num_tot_rec as int
set @max_rec = @n_page*@num_rec_page
set @min_rec = (@max_rec-@num_rec_page)+1
set @num_tot_page = 0
set @num_tot_rec = 0
If exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[#ret_tbl]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[#ret_tbl]
SELECT IDENTITY(int, 1,1) AS ID_Num, tmp_tbl.*
INTO #ret_tbl
FROM ([b]SELECT * From tbl[/b]) as tmp_tbl
select * from #ret_tbl WHERE ID_Num >= @min_rec AND ID_Num <= @max_rec
select @num_tot_rec = MAX(ID_Num) from #ret_tbl
set @num_tot_page = (@num_tot_rec/@num_rec_page) + 1
select @num_tot_page as NumTotPage
END
@ndersMedlem sedan juni 200026 914 inlägg
- Borde inte något liknande fungera?:
SELECT ID as FooID, fld2, fld3 INTO #FooTbl FROM BarTbl
@ndersMedlem sedan juni 200026 914 inlägg
Jesper T skrev:
Hur, var? :)
Hmm, var det inte den här delen du frågade om?
SELECT IDENTITY(int, 1,1) AS ID_Num, tmp_tbl.*
INTO #ret_tbl
FROM (SELECT * From tbl) as tmp_tbl
Jesper TMedlem sedan nov. 20017 058 inlägg Men vad är skillnaden på:
SELECT IDENTITY(int, 1,1) AS ID_Num, tmp_tbl.*
INTO #ret_tbl
FROM (SELECT * From tbl) as tmp_tbl
och:
SELECT Id AS ID_Num,tmp_tbl.*
INTO #ret_tbl
FROM (SELECT id From search1) as tmp_tbl
?
@ndersMedlem sedan juni 200026 914 inlägg Hmm? Nu blir jag ju så där förbryllad igen.
Får du det inte som du vill om du specificerar fältnamnen istället för att använda tmp_tbl.* (och givetvis struntar i id-fältet)? Typ så här då:
SELECT IDENTITY(int, 1,1) AS ID_Num, tbl.fält1, tbl.fält2, tbl.fält3, tbl.fält4, tbl.fält5
INTO #ret_tbl
FROM tbl
Jesper TMedlem sedan nov. 20017 058 inlägg Visst, men trixet är att få med id-kolumen ifrån tabellen search1.
I värsta, värsta, mest eländigaste fall så får jag byta namn på kolumnen, men det suger fett, då en massa kod och en massa sp:s använder namnet "id" på den tabellen...
Jesper TMedlem sedan nov. 20017 058 inlägg Måste den nedrans temptabellen döpa sin id-kolumn till id?
Jesper TMedlem sedan nov. 20017 058 inlägg Det skulle vara bra att veta innan jag gör om hela baletten.
Ingen som vet det?
:)
Jesper TMedlem sedan nov. 20017 058 inlägg Jaaaaaa!
Det går att få med id-fältet.
SELECT IDENTITY(int, 1,1) AS ID_Num, tbl.id[b]+0 as foo[/b], tbl.fält2, tbl.fält3, tbl.fält4, tbl.fält5
INTO #ret_tbl
FROM tbl
:)