I am using the following C# code to establish a SQL connect to a SQL database file:
// connection string // attach a SQL database file to a local SQL server express instance string _connectionString = @"Server=.SQLExpress; AttachDbFilename=C:BalanceDatabase_1.mdf; Trusted_Connection=Yes; User Instance=True";
// using System.Data.SqlClient; SqlConnection _sqlConnection = new SqlConnection(_connectionString); // open the connection _sqlConnection.Open();
// do something
// close the connection _sqlConnection.Close();
So far, the connection works fine.
However, next, I want to copy the database file to another folder. So the following codes: // source database file name string sourceDatabaseFileName = @"C:BalanceDatabase_1.mdf"; // target database file name string targetDatabaseFileName = @"D:BalanceDatabase_1.mdf"; // copy database file System.IO.File.Copy(sourceDatabaseFileName, targetDatabaseFileName, true);
Then the program came with runtime exception: "IOException was unhandled: The process cannot access the file 'C:BalanceDatabase_1.mdf' because it is being used by another process."
Is it because the database file was sill attached to the local SQL Server express instance? What can I do to bypass this problem? Detach the database file? or dispose the local SQL Server express instance?
Hi,I have a site and I am using SQL Express to store my data. Since I need to install the site on many different machines, I need to have an installer. I have added a visual studio "Web Setup Project"() to my solution which is handling the installation and it is doing it fine. The only problem I have is that after each installation, my database becomes read-only and as far as I have found, tat is related to user's rights on App_Data folder. How can I solve this problem or is there a way for installer to set permissions too? Is there any other better solution at all?Thanks for your help,Cheers
as I'm relatively new to Sql Server Express, I have a few questions regarding best practices for data handling.
In my ASP.net Application I thought it might be of high value to create the database as mdf file in my vs2005 project, so I could easily copy the database with the project.
Now inside VS2005 I have the problem of not being able to create any SQL Statements other than queries. For example simple create table statements and such seem not to be possible if I don't want to use the designer.
So I attached the mdf file to my Sql Server Express in Sql Management Studio Express. But here I seem not be able to detach the file again when I made some changes. Only option is to delete the whole thing.
So my questions are:
1. Is it somehow possible to send simple sql statements to a sql server express database from Visual Studio 2005? 2. How can I detach an mdf database file from Sql Server Express once I have attached it with Sql Management Studio Express? 3. Should I use a different approach to my problem?
I am trying to detach and attach a database on SQL 7.0 Server with SP 2 through Enterprise manager . However if i right click o the Database and go to all task , i see the ' detach database' greyed out . The same thing is seen for ' attach Database 'when i try to attach the database .
Although it can done through T-SQL commands also , does any body know the reason why this field is greyed out ?
Does it depend on the SQL 7.0 Service pack or any kind of special permissions ? The same is visible on SQL 2000 Server Enterprise Manager .
hi Please help me .I have detached a database in sql server 2005 using object browser. Now i cant see the database in object browser of sql server management studio .I tried to attach it but the mdf file of that database is missing in the data folder. i had not created the backup. Can any one help me how to reattach that database.I will be very thankful to him..
I've just created ASPNETDB database with ASP.NET Security. Now, I want to send this db to orther computer.First, I detached this db, then when I used attach database in that computer, there is an error :Error 602: Could not find row in sysindexes for database ID 8, object ID 1, indext ID 1. RUN DBCC CHECKTABLE on sysindexes. Please help me .Thank.
In SQL when I right click on Databases the option to use Attach/Detach is greyed out. I don't understand why. I'm running SQL 7 on Win2000 server and I have Win2k at sp2 and SQL at sp2.
I need some insight if possible. I installed a new server (to replace an aging machine) with SQL 2000. After installing SQL on the new server I tried to detach a database from the old server so that I can attach it to the new instance of SQL. My problem is that when I do the process I am stopped with an error message.
“Error 8146: procedure sp_detach_db has no parameters and arguments supplied.”
This is happening with all of the user databases on the old server.
I have tried to run this using both the Query Analyzer and from the right-click menu option and both return the same error message. Any help would be greatly appreciated.
An original database (eg A.mdf) is imported/exported to a different server as named B.mdf. The detach of A.mdf was unitentionally not done. It seems that both the database were updated.
I'm trying to detach a database and reattach to another server. When trying to detach it using Enterprise Manager, the command is greyed out. I've tried taking the database offline first but the command is still not enabled. I'm logged in as sysadmin. What gives?
I open enterprise manager , right click and choose detach detach database. I see line : connections using this database. I think that this is connection from client connect to database.I feel that connection disappear automatically after time interval. I want to know how long time ? Thank you very much.
I have the need to detach a database from code, at the moment I am using 'SSEUTIL -d' for this in my code and it works OK but now I want to change to using an SQLCommand. Here is my code so far:
Code Snippet
Dim conDatabase As SqlConnection("Data Source=.SQLEXPRESS;AttachDbFilename=MyMDFPath"; Integrated Security=True;Connect Timeout=60;User Instance=True") Dim comDetach As New SqlCommand("EXEC master.dbo.sp_detach_db '" + MyMDFPath + "'", conDatabase) conDatabase.Open() comDetach.ExecuteNonQuery() conDatabase.Close()
However, when I execute this I always get the following exception:
Code Snippet
Cannot detach the database 'MyMDFPath' because it is currently in use.
It seems obvious to me that the problem is that to do the detach I create a connection - how do i get around this?
There are two databases on two web servers, db01 is on server01, db01_replica is on server02, db02 is on server02, db02_replica is on server01. db01 and db02 are both for one system. Each time after doing performance test, I have to recover databses. I copy the data files in a folder, try to use detach and attach to recover databases. But with two replication dbs, I don't know how to do it. The replication db should also be recovered.
I'm trying to detach a database and after archive it for deliver to other server.
The detach wents fine and the database is removed from the database tree list in Management Studio. The problem is that the mdf file is being locked by some process (maybe SQL) and I can't imagine why. Here is the code for this operation:
USE master;
GO
ALTER DATABASE IMS_MCK_MIS SET AUTO_UPDATE_STATISTICS ON
If I detach a database on a server, then attach the database with asingle file only using the data file...will I lose any transactionsthat were in the original log file? There is a debate going on here atwork where some people think that during the detach, transactions inthe log file are saved to the data file.Thanks!
Everything I read about sp_resetstatus says you must restart SQL after. Isthere a way around that (don't want to shut down production). The suspectdb is just an empty db that is not needed. I need to create another db withthe same name.Thanks.
I am having a question on detach/attach database. As when we detach/attach database, we have to copy both of .mdf and .ldf files to the targeted filepaths, in this case, when the database is large, then it takes a pretty while to copy the physical files though. In this case, I dont really see the point to detach/attach the database? Instead, backup/restore may be faster? (also, as detach the database, the files has to be taken offline)
Just confused about the way we trasfer database files with detach/attach. I am looking forward to hearing from you shortly for any advices for that.
I have two database files, one .mdf and one .ndf. The creator of these files has marked them readonly. I want to "attach" these files to a new database, but cannot do so because they are read-only. I get this message:
Server: Msg 3415, Level 16, State 2, Line 1 Database 'TestSprintLD2' is read-only or has read-only files and must be made writable before it can be upgraded.
What command(s) are needed to make these files read_write?
This might sound dumb, but BOL says you can use detach/attach to "MOVE" a database but can you detach and copy the files to a new server, leaving the files on the original and running the attach on the new and the old? (effectually a way to copy)? I know how to use data transformations/import,export was curious?
I have similar question like Tim asked but from a different angle. I wish I pose my question here too anybody can help answer this.
I tried to use detach and attach method to do backup of the user database (not master, maybe we can do master too) on another server, but it looks the login and permission credential would not go together. I come to see different kind of message I tried to login as non-sa user after I attatch the database on different machine. I would be denied for SQL timeout. It looks like loginand user dose not exist in new server because I did not move master database too. But even if I recreate the login when I tried to associate user with login I will see a message saying user or role already exist in database. If I go back to check the user it did not show up on enterprize manager on that database.
So my question would be 1). how to move login and user together with user database. 2) do we have to move master database where the login infor. reside 3). if so how to move master database from one server to another when other server already have master database exist?
i have a database which get refreshed every day from client's data . and we need to pull heavy data from them every day as reports . so only selects happens on that database.
we do daily population of some table in some other databases from this daily refreshed DB.
will read uncommitted or NOLOCK with select queries to retrieve data faster.
there will be no dirty read as there are NO DML operation in that database so for SELECT which happens concurrently on these tables , will NOLOCK work?
Hi, Iam facing problems to connect to the new database after detach the aspnetdb.Simply the new database disappear (In SQL 2005 Management studio express the database contents disappear ! and I get an error when try to open it).If I try to connectto aspnetdb again I get an error telling me it is used by another process.I don't understand what is going on could any one explain to me?
I'm trying to see the differences between Backup/Restore and Attach/Detach. I backup and detach a database from SQL Server 2000 SP3 and then attach and restore it to SQL Server 2005 SP1.
The differences I noticed are:
1. The restored database has a much larger initial size (database size is same) for data and log. 2. The attached database has a last backup date 3. If the backup is restored over a database, the restored database is showing owned by the database owner of the database restored over but syslogins and sysusers do not match.
I don't understand why #1 happens.
Are there any other differences between Backup/Restore and Attach/Detach?
i have a program written in VB6 and writes without any problem in sql express 2005 but when i try to Select information from SQL to VB6 i always have a error " Object Required"
The link is ODBC Source with SQL NATIVE CLIENT
and the code is something like this
dbname = txtDb
Set Db = Ws.OpenDatabase(txtDb, False, False, "ODBC")
txtDb = Db.Name
logMessage = "Ligar a " & txtDb
UpdateLog (logMessage)
lblDbStatus = "Ligar"
picDbStatus.Visible = True
lblFileStatus = "Parado"
picFileStatusOff.Visible = True
tmr.Enabled = True
SQLStateQuery = "SELECT STATE FROM DYELOTS where dyelot = '" & Header(0) & "'"
I am attempting to use a select SP with params to return data to MS Access. I am using SQL Server Management Express to manage SQL Server 2005. I can create tables, views and SPs just fine. Tables and views return data that is r/w but ALL SELECT SPs return data that is Read Only. Is this normal? I am under the impression that SPs can be used to return data to Access forms which is updateable, but I cannot even edit the data for an SP directly out in SMSE, never mind in Access.
I use Widows Vista Business, have uninstalled all previous versions of SQL before installing SQL 2005 Express.
At first, I faced "Receiving WMI configuration error. SQL Server System Configuration cannot be executed due to to WMI configuration on this computer Error:2147749896 (0x80041008)."
Then, I tried this cmd someone posted as:
FIXWMI.CMD ------------------------
@echo on cd /d c: emp if not exist %windir%system32wbem goto TryInstall cd /d %windir%system32wbem net stop winmgmt winmgmt /kill if exist Rep_bak rd Rep_bak /s /q rename Repository Rep_bak for %%i in (*.dll) do RegSvr32 -s %%i for %%i in (*.exe) do call :FixSrv %%i for %%i in (*.mof,*.mfl) do Mofcomp %%i net start winmgmt goto End
:FixSrv if /I (%1) == (wbemcntl.exe) goto SkipSrv if /I (%1) == (wbemtest.exe) goto SkipSrv if /I (%1) == (mofcomp.exe) goto SkipSrv %1 /RegServer
kipSrv goto End
:TryInstall if not exist wmicore.exe goto End wmicore /s net start winmgmt :End
I tried to install SQL2005 Express again, but then it gives:
Error 1603 installing Microsoft SQL Native Client.
I'm taking a database(read-only) backup from one server and restoring it on other server. As soon as restore is done it is bringing database into single-user read-only mode.
why it is bringing the database into single user mode ?
I'm new to ASP.NET (I normally work with Windows Forms) and have installed the Club Website Starter Kit. I created an Administrators role and a user called "admin". When I run the project locally, everything works as it should - I can log in as admin and I can create new users. I then copied the site to localhost (C:Inetpubwwwroot), but when I run the site from localhost, I can't log in (as admin or any other user); instead I get a message that says, "Your login attempt was not successful. Please try again." Also, I can't create a new user. When I try, I get the following error: Server Error in '/' Application.
Failed to update database "C:INETPUBWWWROOTAPP_DATAASPNETDB.MDF" because the database is read-only. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Data.SqlClient.SqlException: Failed to update database "C:INETPUBWWWROOTAPP_DATAASPNETDB.MDF" because the database is read-only.Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. Stack Trace:
Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.42 I figure there must be a simple(?) explanation and solution for this problem, and ideally, some sort of step-by-step procedure that new users to ASP.NET can follow to configure a site - such as one of the starter kits - to work correctly. I can honestly say that trying to get this working has been an extremely frustrating experience. If someone could help me out, I would really appreciate it. I've been working on this for two days and feeling I have hit the wall. Thanks in advance.