16. september 2009 - 10:57Der er
17 kommentarer og 1 løsning
Kan ikke ændre kolonne i tabel
hej, Jeg har en database som kører på en MS SQL express. Og i den database er der en tabel med en kolonne som jeg gerne vil ændre navn samt type, men det kan jeg ikke få lov til. Jeg får denne fejl: Error: The object 'DF_elementData_insuranceCompany' is dependent on column 'insuranceCompanyId'. ALTER TABLE DROP COLUMN itemlocation failed because one or more objects access this column. Source: .Net SqlClient Data Provider
Jeg kan ikke finde det 'DF_elementData_insuranceCompany' som fejlmeddelelsen skriver der skulle være. Og det er ikke noget som jeg har lavet på databasen. Felterne er tomme og bliver ikke brugt til noget i systemet, og derfor skal de fjernes. Er der nogen der har prøvet noget tilsvarende og ved hvad man kan gøre. Jeg har prøvet at hente databasen ned lokalt på min maskine, og der kunne jeg sagtens ændre det der skulle ændres, men så snart jeg lagde den op igen på serveren fejlede den med beskeden om at brugeren ikke kunne logge ind. Mvh henrik
Jeg bruger asp.net enterprise manager til at redigere min database. Hvis jeg forsøger at redigere i databasen lokalt i Visual Web developer express kan jeg godt dette, men så kan jeg ikke åbne databasen når jeg lægger den op på serveren. Så får jeg en fejl med at brugeren ikke kan åbne databasen.
Synes godt om
Slettet bruger
16. september 2009 - 14:41#3
Hvis du ikke kan åbne databasen efter at have ændret kan det måske hænge sammen med at permissions er blevet sat til sa? Højreklik på databasen/tabelen og skift owner til din web-bruger...
jeg ved ikke om det er fordi jeg bruger Visual web developer express, men jeg kan ikke få lov til at ændre owner på databasen. og nu har jeg lige downloadet en "frisk" kopi. men når jeg åbner den igennem vwd så står owner til at være min lokale bruger. kan det virkelig være derfor at den pr. automatik bliver ændret når jeg åbner den lokalt. Jeg har ingen poblemer med at ændre det der skal ændres når den åbnes lokalt. men som skrevet så kan den så ikke åbnes på serveren af web applikationen. og jeg kan ikke få lov til at ændre den på serveren igennem asp enterprice manager, fordi der er et eller andet object, som jeg ikke kan finde, som har en dependency på den kolonne jeg forsøger at slette. Jeg forstår ingenting
Jeg har ingen erfaringer med at administrere sql server gennem Visual Studio, men på den anden måde tror jeg man får bedre overblik og nemmere kan fejlfinde...
Ok, jeg prøver lige at se på det. Jeg håber det er noget jeg kan fikse ude at smadre databasen. Er lidt bekymret da det er en "live" database jeg sidder og roder med.
Synes godt om
Slettet bruger
16. september 2009 - 18:08#7
Du kan sagtens forbinde til din 'live' database på nettet og arbejde med denne gennem Management Studio Express.
Men det ville selvfølgelig være en fordel at lave en kopi lokalt og så rodde lidt rundt med den før du laver numre på den rigtige database :-)
Hej igen. Så lykkedes det endelig at få installeret SQL manager. Og her kunne jeg også sagtens se den constrain som er skyld i det hele. eller det vil sige næsten det hele. For jeg har fået lov til at slette et felt i tabellen, men jeg kan ikke få lov til at oprette et nyt. Jeg har prøvet at lave ejerskabet om for tabellen, men der sker intet. Den ændrer ikke på ejeskabet. Har du nogen ideer?
Ved du forresten hvordan jeg forbinder til min "Live" database?
Synes godt om
Slettet bruger
17. september 2009 - 13:35#9
Med hensyn til forbindelsen til databasen, så er connectionstring selvfølgelig afhængig af den specifikke udbyder. Du skal kontakte din webhotel-udbyder for at få oplyst stien til databasen og brugernavn og password for din bruger på database-serveren.
Jeg får ingen fejl. Der bliver bare ikke ændret noget. Jeg har læst din artikel, men problemet er at jeg kan ikke sætte det flag på databasen på serveren. Jeg har ingen problemer med at ændre det lokalt, men når jeg lægger det op på serveren, har brugeren ikke længere adgang.
Synes godt om
Slettet bruger
17. september 2009 - 15:11#11
Hvordan plejede du at arbejde med databasen før du installerede SQL Management Studio?
Du skrev noget om at du plejede at uploade databasen hver gang?
Hvis du forbinder direkte til databasen fra din SQL Management Studio, så burde du have disse muligheder. Er der tale om en SQL Server 2008? Og hvor har du databasen hosted?
Jeg plejer at bruge asp.net enterprise manager. Og den har sådan set virket fint, indtil nu hvor jeg er stødt ind i den problemer. Nu har jeg lige prøvet at lave ændringerne lokalt, og derefter lægge den online. Det har jeg jep prøvet før, og fik en fejl om brugeren ikke fik adgang til databasen. Nu forsøgte jeg så at oprette en ny bruger til databasen, men fik så en fejl om at der ikke kunne oprettes en bruger enten pga ødelagte filer eller manglende hukummelse. Jeg begynder godt nok at blive lidt irriteret. Jeg forbinder ikke direkte til databaen. Jeg har hentet en kopi ned lokalt. Lavet ændringerne og lagt den op igen. jeg hoster selv min webserver og det er en express edition med dette versionsnr: 10.0.1442.32 hvis det siger dig noget.
Synes godt om
Slettet bruger
17. september 2009 - 15:48#13
Ok, hvis du selv hoster databasen på din egen server så er det jo en del nemmere. Det ER forøvrigt 2008 du kører.
Når du starter Management Studio op, bliver du bedt om nogle oplysninger til at forbinde til databasen.
Server Type skal være Database Engine
Servername skal være fx. SERVERNAVN\SQLEXPRESS
Authentication ville jeg sætte til SQL Server Authentication (tror jeg også den er sat til da du jo skal tilgå den fra dine .net sider)
Login vil være en bruger du har oprettet eller 'sa', som er standard admin på database-serveren.
Password, ja det kender du jo...
Når du er logget ind på SQL server 2008, så kan du attache en eksisterende database via Management Studio. Højreklik på 'Databases' og vælg 'Attach'. Specifier stien til databasen - lig den gerne i default location for nemheds skyld. Mener det er C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data
Når den er attached, så kan du sætte permissions og owner på tabellerne/databasen ved at højreklikke på den i venstre side og vælge 'Properties/Files'. Under 'Owner' kan du specificere ejeren af databasen til den lokale SQL Server bruger du har oprettet på database-serveren. Du kan også benytte 'sa', så længe at du benytter dette login i din connectionstring i din kode på dine .net sider.
Tjek for en sikkerheds skyld også at du har gjort ligesom i den artikel jeg har sendt dig et link til - altså sådan at databasen rent faktisk tillader at droppe tabeller og oprette dem igen i tilfælde af at du foretager ændringer af den egentlige tabelstruktur.
Ved du om kan lade sig gøre at køre installationen? Jeg er lidt bange for at jeg får lavet rod i serveren. Jeg tænker bare at hvis der er en installation af SQL serveren så installerer den vel ikke en oveni?
tror bare jeg at jeg vil forsøge at oprette en ny tabel, overføre det data der nu er i den gamle tabel og så slette den gamle når jeg har gjort det. Jeg gider ikke rigtig rode mere med det. Det ser ikke ud til at jeg kan fikse det rettigheds problem. men send et svar, så du kan få point.
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.