|
Re: Pointer in SQL??
-
05-20-2010, 12:17 PM |
|
-
katalyn
-
-
-
Joined on 09-20-2006
-
Bucureşti
-
sysadmin
-
-
|
Mai jos ai o varianta "muncitoreasca" (copy+paste) dar acest lucru se poate face si prin dinamic sql pt a genera un select si apoi se poate executa... daca raspunsul meu nu te ajuta, am sa te rog sa detaliezi putin (mai mult) problema.
BEGIN TRAN
CREATE TABLE A (
id int IDENTITY(1,1) PRIMARY KEY,
info nvarchar(100)
)
CREATE TABLE B (
id int IDENTITY(1,1) PRIMARY KEY,
info nvarchar(100)
)
CREATE TABLE C (
id int IDENTITY(1,1) PRIMARY KEY,
info nvarchar(100)
)
CREATE TABLE D (
id int IDENTITY(1,1) PRIMARY KEY,
info nvarchar(100)
)
CREATE TABLE E (
id int IDENTITY(1,1) PRIMARY KEY,
tabela nvarchar(100),
pk_in_tabela int
)
INSERT INTO A(info)
VALUES ('A1'), ('A2')
INSERT INTO B(info)
VALUES ('B1'), ('B2')
INSERT INTO C(info)
VALUES ('C1'), ('C2')
INSERT INTO D(info)
VALUES ('D1'), ('D2')
INSERT INTO E(tabela, pk_in_tabela)
VALUES ('A',1), ('B', 1), ('C', 2), ('D', 2)
DECLARE @i int, @CountOfE int
SELECT @i = 1,
@CountOfE = MAX(id)
FROM E
WHILE @i<= @CountOfE BEGIN
SELECT E.*, COALESCE(A.info, b.info, c.info, d.info) AS TableInfo
FROM E
LEFT JOIN A ON E.pk_in_tabela = A.id AND E.tabela = 'A'
LEFT JOIN B ON E.pk_in_tabela = B.id AND E.tabela = 'B'
LEFT JOIN C ON E.pk_in_tabela = C.id AND E.tabela = 'C'
LEFT JOIN D ON E.pk_in_tabela = D.id AND E.tabela = 'D'
WHERE e.id = @i
SET @i = @i + 1
END
ROLLBACK
Cătălin D.
|
|
View Complete Thread
|
|
|