Search

onze sponsors

microsoft_logo.gif


 

computrain_logo.JPG

Forum Login | Register
   Forum

 

Subject: OBJECTPROPERTY op een remote database
Prev Next
You are not authorized to post a reply.

Author Messages
Ellen HeijmansUser is Offline

Posts:105

12-05-2010 10:05:30 Alert 

Ik heb een programma gemaakt dat een stored procedure gebruikt om twee databases met elkaar te vergelijken. Dus elke afwijking in de tabellen, indexen, constraints, functions enz. worden op een scherm getoond. Het vervelende was altijd dat de twee databases op dezelfde server moeten staan om te vergelijken. Dus als ik lokaal een database heb, en er staat er een op de testserver, dan moet ik eerst bekkuppen en restoren naar de andere server om met mijn programma te kunnen vergelijken.

"Dat kan anders!", dacht ik en ging aan de slag. SPs, functions en views waren geen probleem, maar toen constraints! Ik ben nu volledig gestruikeld op OBJECTPROPERTY. Je moet daar een id aan meegeven, maar de sp van het programma draait in master en met server.database.schema.object vraag ik dan de gegevens op, maar met OBJECTPROPERTY (en soortgelijken functions) kan dat niet (het id dat je doorgeeft, bestaat niet in master of is anders). Voor andere soortgelijke problemen heb ik een oplossing gevonden, maar om van een contraint te bepalen of hij enabled is, of het een cascading delete betreft en of de PK index clustered on non clustered is. Voor de laatste twee kan ik wel een extra join doen op sysindexes en information_schema.referentialconstraints, maar daar ben ik ook niet echt blij mee. Of een constraint enabled is of niet, kan ik helemaal in geen enkele systeemview vinden.

Geprobeerd of ik executesql naar een remote server kan gebruiken in een functie: lukt niet. Rechtstreeks deze sp opnemen in mijn selectstatement gaat so wie so niet. Hoe kan ik deze opties (en ongetwijfeld anderen die komen als ik hetzelfde moet doen met indexen en tabellen) opvragen op een remote server?

Hugo KornelisUser is Offline

Posts:46

12-05-2010 10:17:30 Alert 
Hoi Ellen,

Je kan die informatie vinden in de system views:

select name, object_id, is_disabled from sys.check_constraints;
select name, object_id, is_disabled from sys.foreign_keys;

Maar heb je overwogen om, in plaats van vele uren te besteden aan het zelf maken van zo'n tool, gewoon een kant en klaar programma te kopen.

Ik gebruik zelf Red Gate Compare (voor schema vergelijkingen) en Red Gate Data Compare (voor vergelijking van de gegevens in de tabellen). Er zijn er ongetwijfeld meer, maar dit zijn degene die ik ken en omdat ze me bevallen heb ik niet verder gezocht. Ze kosten $395 per stuk, dus $790 als je ze beiden nodig hebt. Ik ken jou uurtarief natuurlijk niet, maar ik kan me niet voorstellen dat zelfbouw voordeliger is...
Link: http://www.red-gate.com/

Met vriendelijke groeten,

Hugo Kornelis (SQL Server MVP)
You are not authorized to post a reply.
Forums > Forums > Ontwikkelen > OBJECTPROPERTY op een remote database



ActiveForums 3.6
  
Copyright (c) 2012 PASS Nederland   Privacy Statement  Terms Of Use