webForumDet fria alternativet

Primärnyckel ibland, ibland inte??

Webbutveckling

2 svar · 489 visningar · startad av kristoffer

Medlem sedan juni 20001 257 inlägg
Frågan#1

Jag skapar en tabell enligt:

CREATE TABLE test (
    id int IDENTITY (1, 1) PRIMARY KEY,
    foo varchar(255)
)

Jag gör detta mot en SQL Server 7 med versionsnummer:

Microsoft SQL Server  7.00 - 7.00.1063 (Intel X86) 
	Apr  9 2002 14:18:16 
	Copyright (c) 1988-2002 Microsoft Corporation
	Small Business Server Edition on Windows NT 4.0 (Build 1381: Service Pack 6)

Följande sql-fråga skall kontrollera om vart och ett av fälten är primärnyckel.

SELECT (ISNULL
        ((SELECT TOP 1 CASE INFORMATION_SCHEMA.TABLE_CONSTRAINTS.CONSTRAINT_TYPE
            WHEN 'PRIMARY KEY' THEN 1 END
       FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE INNER
            JOIN
           INFORMATION_SCHEMA.TABLE_CONSTRAINTS ON 
           INFORMATION_SCHEMA.KEY_COLUMN_USAGE.CONSTRAINT_NAME
            = INFORMATION_SCHEMA.TABLE_CONSTRAINTS.CONSTRAINT_NAME
       WHERE INFORMATION_SCHEMA.KEY_COLUMN_USAGE.TABLE_NAME
            = 'test' AND 
           INFORMATION_SCHEMA.KEY_COLUMN_USAGE.COLUMN_NAME
            = INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME AND
            INFORMATION_SCHEMA.TABLE_CONSTRAINTS.CONSTRAINT_TYPE
            = 'PRIMARY KEY'), 0)) AS IsPrimaryKey
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'test'

När jag kör den frågan i Enterprise Manager får jag som resultat att fältet id är primärnyckel. Men när jag kör frågan i Query Tool (using ADO) eller i Database Gate eller i LLBLGen eller nåt annat liknande program så får jag som resultat att fältet id INTE är primärnyckel. Inget fält överhuvudtaget är då primärnyckel! Vad beror skillnaderna på? Service Pack 4 är ju installerat.

Medlem sedan juni 20001 257 inlägg
#2

Ingen som vet?

Medlem sedan juni 20001 257 inlägg
#3

Jag har hittat felet. Jag loggade tydligen in med olika användare. :)

241 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
118 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)