sql server nelze přetáhnout databázi &lt;název\_databáze&gt;, protože se aktuálně používá ... ale nezobrazují se žádné relace
<p>při pokusu o vyřazení databáze se zobrazí chyba „nelze zrušit databázi“ dbname ”, protože se právě používá. když však spustím <code>sp\_who2</code>, k této databázi rozhodně nejsou žádné relace. také jsem nastavil databázi na <code>single\_user mode with rollback immediate</code>.</p><p>proč se toto děje?</p>
<p>ujistěte se, že na db, který chcete odebrat, nemáte závislosti, jako jsou databázové snímky. přesto by chybová zpráva vypadala jinak. jste si jisti, že k vaší databázi není žádný skrytý proces? dobrým přístupem by bylo spuštění skriptu, který zabije všechny relace a ihned po přejmenování databáze na jiné jméno a poté přetažení databáze.</p><p>vytvořte kurzor na základě tohoto výběru:</p><pre><code> select d.name , convert (smallint, req\_spid) as spid from master.dbo.syslockinfo l, master.dbo.spt\_values v, master.dbo.spt\_values x, master.dbo.spt\_values u, master.dbo.sysdatabases d where l.rsc\_type = v.number and v.type = 'lr' and l.req\_status = x.number and x.type = 'ls' and l.req\_mode + 1 = u.number and u.type = 'l' and l.rsc\_dbid = d.dbid and rsc\_dbid = (select top 1 dbid from master..sysdatabases where name like 'my\_db') </code></pre><p>vydání uvnitř kurzoru:</p><pre><code>set @kill\_process = 'kill ' + @spid exec master.dbo.sp\_executesql @kill\_process print 'killed spid : '+ @spid </code></pre><p>po uzavření kurzoru a uvolnění:</p><pre><code>sp\_dboption 'my\_db', 'single user', 'true' go sp\_renamedb 'my\_db', 'my\_db\_old' go drop database my\_db\_old </code></pre>
protože používáte WinForms aplikaci, pokud je to v NET 2.0 je to vlastně systém uživatelských nastavení (tzv Properties), který je navržen pro tento účel. [Tento článek na webu MSDN](http://msdn.microsoft.com/en-us/library/aa730869(VS.80).aspx) má docela dobrý úvod do této


Pokud jste stále obavy o výkonu pak se podívat na [SQL Compact Edition](http://www.microsoft.com/sql/editions/compact/default.mspx) , který je podobný SQLite, ale je dar společnosti Microsoft, který jsem našel hraje velmi pěkně s WinForms a je tu i možnost [, aby to fungovalo s LINQ](http://geekswithblogs.net/steveclements/archive/2007/11/13/LINQ-to-SQL.compact.aspx) Často toto je provedeno pomocí [„Data Driven odběry“](https://msdn.microsoft.com/en-us/library/ms169673.aspx) , ale tato funkce je k dispozici pouze v některých SQL vydáních: Enterprise a Business Intelligence, ale ne v normě.


Takže existuje celá řada kreativních řešení. Ale nemám rád žádné z nich, a všechny vyžadují spravedlivý trochu práce mimo SSRS.


Mezi řešení, které jsem viděl, patří: Vytvoření odběr a potom zakázání nebo povolení SQL úlohu, kterou odešle předplatné (identifikovatelné podle GUID).


Vytvořte si .NET obálky exe zvládnout odeslání e-mailu. Je možné spustit dotaz nejprve zjistit, kolik se vrací řádky, a pak v případě potřeby generovat zprávu a zahrnout do e-mailu. SMO se systémem T-SQL pod přikrývkou. Dalo by se prototyp SMO a pak sledovat v Profiler získat T-SQL.


Je to pravděpodobně k narušení EULA, ale mohli jste redistrib SMO sestav bok po boku s aplikací, bez nutnosti instalace v tomto případě. Nemyslím si, že jejich instalační program zasáhne registru. Docela snadno rozbít otevřený na SQLServerManagementObjects.msi a zjistit. <p>pravděpodobně se dostáváte do radostí mysql myisam engine ...</p><p>v rámci mysql (nebo phpmyadmin) použijte příkazy repair table xyz znovu, opakovaně, na každé z vašich tabulek (nebo spíše tabulek souvisejících s vašimi podmínkami, protože to jsou ty, které znějí zkaženě), aby se zjistilo, zda to nic nevyřeší.</p><p>pokud selžou, existuje několik zdokumentovaných řešení:</p><p> <a href="http://www.google.com/search?q=recover+a+corrupt+mysql+database">http://www.google.com/search?q=recover+a+corrupt+mysql+database</a> </p><p>jakmile jsou věci obnoveny, spusťte příkazy optimalizovat tabulku xyz na každé tabulce a poté změňte motor databáze a každou tabulku, aby byla použita innodb. innodb poněkud neuspořádá katalog (zejména pokud upustíte databázi nebo velké tabulky), ale - pokud je kompatibilní s acid - je to o dost méně náchylné k chybám než myisam.</p> Budete dělat NTLM / Kerberos / vyjednávání [SSPI výměny smyčku](http://msdn.microsoft.com/en-us/library/aa375403(VS.85).aspx) . Tam je aa plný vzorek na MSDN jak pro [klienta](http://msdn.microsoft.com/en-us/library/aa380536(VS.85).aspx) i [serveru](http://msdn.microsoft.com/en-us/library/aa380537(VS.85).aspx) . Aby bylo jasno: vy *ani* používat žádný druh přístupu LDAP explictily. Je LSA (Local Security Authority), který mluví s LDAP a určuje totožnost klienta. Pokud jste úspěšný v tom celý SSPI smyčky, ověření se podařilo už i identita klienta je *alread* ověřen proti LDAP. Pokud váš server potřebuje znát identitu klienta (např. Znát použití rname) je to načte z kontextu zabezpečení za následek SSPI smyčky pomocí [`QueryContextAttributes(..., SECPKG_ATTR_NAMES,...)`](http://msdn.microsoft.com/en-us/library/aa379328(VS.85).aspx)a načte uživatelské jméno ze [`SecPkgContext_Names`](http://msdn.microsoft.com/en-us/library/aa380089(VS.85).aspx)struktury. Nejlepší vysvětlení jsem viděl, je v kapitole 7 volných [Základy programování e-knihy](http://codebetter.com/karlseguin/2008/06/25/foundations-of-programming-ebook/) .


Zjednodušeně řečeno, v **.NET** dochází k nevracení paměti při odkazované objekty kořeny, a proto nemůže být uvolněna. K tomu dochází náhodně, když se držet na referencí mimo zamýšlený rozsah.


Budete vědět, že máte úniky, když začnete dostat OutOfMemoryExceptions nebo vaše využití paměti stoupá rámec toho, co byste očekávali ( **PerfMon** má pěkné čítače paměti).


Pochopení **.NET** model paměti je, je nejlepší způsob, jak se vyhnout to. Konkrétně pochopení toho, jak garbage collector funguje a jak reference práce - opět odkazuji na kapitolu 7 e-knihy. Také mějte na paměti společných úskalí, pravděpodobně nejvíce obyčejné jsoucí události. Pokud objekt je registrována k události na objekt **B** , pak objekt **A** bude držet kolem, dokud objekt **B** zmizí, protože **B** uchovává odkaz . Řešením je zrušení registrace na akce, když budete hotovi.


Samozřejmě, dobrý profil paměť vám umožní vidět vaše objektů grafy a prozkoumat hnízdění / odkazování svých objektů, které mají zjistit, kde reference přicházejí a co kořenový objekt je zodpovědný ( [red-gate mravenci profil](http://www.red-gate.com/products/ants_memory_profiler/index.htm) , JetBrains dotMemory, [memprofiler](http://memprofiler.com/) jsou opravdu dobré volby, nebo můžete použít pouze text **WinDbg** a **SOS** , ale já bych důrazně doporučujeme obchodní / vizuální produkt, pokud jste opravdový guru).


Věřím, že neřízený kód je předmětem jeho typické úniky paměti, že kromě sdílené odkazy jsou řízeny garbage collector. Možná se mýlím o tomto posledním bodě. V nastavení - pokročilé volby - stahování, musíš mít zaškrtnuto "otevřít pomocí zásuvného modulu". Předpokládám, že je to prostředí s cestovními profily (=profily na serveru).   
  
Pokud má mít Adam to samé co teď má Eva ale pak už může cokoliv měnit a neprojeví se to Evě potom stačí kopie profilu (vlastnosti systému, profily uživatelů... přené umístění záleží na verzi klientského OS)  
  
Pokud má mít Adam i Eva jakoby sdílený profil (co změní Adam se změní i Evě) tak to si skoro troufnu říct, že to nejde (anebo to není vůbec dobrý nápad, co když se přihlásí oba najednou z různých PC....)  
  
Ještě je možné vyrobit mandatorní (neměnný) profil, jako vzor tohoto profilu se použije jeden uživatel, ostatní kterým se tento profil nastaví ho vidí pořád stejný a nemůžou v něm nic změnit (resp. vše co změní se po odhlášení ztratí - používá se třeba na sdílené účty ve školách...)  
  
Každopádně kolem profilů to není jen tak, musí se dát pozor na oprávnění... jinak to nefunguje, pokud se kopírují profily na Windows XP (jinde nemám ověřeno) tak je potřeba dodržet pár věcí:  
- profil nesmí být používaný (operaci dělat z jiného administrátorského účtu a po odhlášení kopírovaného profilu nejlépe restartovat, jinak se může stát že ho kopírovat nejde...)  
- ač to zní divně, je třeba mít nastaveno "zobrazovat skryté a systémové soubory", jinak se tyto soubory nezkopírují, profil je potom neúplný (ztratí se některá nastavení...) Skontroluj premenné prostredia "tmp", "temp", či majú plné prístupové práva, users, system, trustedinstaller, administrators.Pri sťahovaní dát (ak nie je výrobcom SW určené inak), sa ukladá vo väčšine záložný súbor do zložky; C:\Users\users\AppData\Local\Temp\*.*Aktivuj swap (pagefile) aspoň na 512MB alebo nastav na max. 4096MB. prečo si nedáš do nejakej zložky tie svoje dáta?