Where should I save a SQL table on my computer? - sql

I am currently creating a database for my project and was wondering where I should save the table. Should I just save it in documents (D:\Documents) or should I save it in the same folder where my project is saved (D:\Documents\Visual Studio 2015\Projects\ALevelCompUnit3)? I was hoping to develop it at school.
Also, the school only provides Visual Basic 2008; would I have to change the framework to do it at school?

SQL Server Express in fact is a light weight version of the SQL server engine that is stored locally on your file system under the extension .mdf. Within this file you will be saving things like tables, views and stored procedures. You can move this file around similar to other traditional file types and where you store it while your developing your application is up to you. If, and when you application grows you may consider moving it over to a full version of SQL Server and there are tools to quickly migrate over. In regards to your Visual Studio versions - Using 2015 at home and switch over to 2008 at school will be a little painful. There are many features of 2015 that are not available in 2008. You should be able to access the .mdf file but your experience will not be as powerful in terms of capabilities.

Related

SQL Database in VB.NET Application

I'm fairly newb when it comes to programming and even newer when it comes to database management and integration.
So I have a VB.NET Windows Application that uses a SQL Database. I use LINQ to SQL to fill datagridviews in windows that show table data and also use LINQ to SQL to save data to the database.
All works wonderfully however...
When I publish the application, the database isn't external as far as I can tell. It seems to build itself into the application so once the application is installed, the database is there, it views and saves data, but if the computer crashes or the application is uninstalled, all that data is going to be lost without a way to back it up.
I'm using Visual Studio 2010 Express. I created the SQL Database in VS2010-Exp as well. I feel like there's something simple I'm missing here. When the application gets published and then installed, where is the physical database going?
Thanks!
It is running as part of the application. If you wanted a separate, central database, you would need to have an instance of SQL server running in some accessible location.

Standard template in SQL Server Management Studio

I am working on a team that have a number of developers working with SQL Server, developing stored procedures, functions etc.
I would like a consistent layout between the SQL, same header with a copyright etc. SO I need a standard template for the SQL. I know in Visual Studio it is possible to share templates.
How can I generate such a template for SQL Server Management Studio that I can share between developers?
This is how I do it:
the physical location of my template is in(Win7 SQL Server Management Studio 2012):
C:\Users\ys\AppData\Roaming\Microsoft\SQL Server Management Studio\11.0\Templates\Sql
I created my own folder in it (00_Mine)
Created a git repository
Asked other devs to pull from it.
In SQL Server Management Studio, press Ctrl-Alt-T or go to Menu, View, Template Explorer
It will list all the templates. However, from SSMS, there is no easy way to add templates to it by drag and drop, you can create new ones and put them into a folder, such as _WORK_.
The templates live physically in (for 2008 R2): C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\SqlWorkbenchProjectItems\Sql, so you can simply drop files and folders in there or push out to team members using group policy. The templates are sorted alphabetically, hence the suggestion for _WORK_ above. Note: A restart of SSMS is required to pick up Template Folder changes.
Here's an article: Using SQL Server Templates
Question to users of template functionality: do you think it will be helpful if you had a possibility to have placeholders for data like: Current database, Current User, Date/Time (something else ?), so, when you open the template these placeholders would be replaced by appropriate values. I develop an add-in and had this idea a time ago, but I do not know if someone really needs it.

Database reverse engineer installation

I have an existing database (SQL Server 2008 R2), and my goal is to have a project that can install the same database as I already have.
i.e the project will read the schema and the data, and will be able to duplicate the existing data and schema.
This tool needs to save the database information to disk so I will able to install the database on different machines.
Can I do it with Visual studio 2010 database projects?
Is it a simple task?
(The reason I am asking is that I already have such a project that installs my database, but this tool is very old(~2000).
That old project is one big mess, it has C#, java, sql, batch files and some 3rd party tools and has many more capabilities than I need for my current product..)
Thanks.
Use SQL Server Management Objects (SMO) to create a snapshot of your source db and then restore it to the target server.
More on SMO here: http://msdn.microsoft.com/en-us/library/ms162169.aspx .
A nice tutorial here: http://www.codeproject.com/KB/database/SMO_Tutorial_1.aspx
The easiest way is to backup using SQL server management studio. Then move the backup file to the second server and there restore it with SQL server management studio. If you need SQL code to do it (instead of GUI way), just drop a comment...
This codeplex project has a basic library that does that if you like to roll your own and has two sample projects for migration/comparison tasks.
http://dbschemareader.codeplex.com/
Also the commercial option is to use Sql Redgate's tools. They are expensive but worth every penny if this is a mission critical database. On the otherhand, if you are just using a db as an alternative to a file, say in a embedded scenario, it might be hard to justify such an expensive tool.
Have you tried DBSourceTools ? http://dbsourcetools.codeplex.com
It is an open-source database versioning tool that will script out all database objects and data to disk, and then re-create the database on another machine.
It has all of the features that you are looking for.

Starting From Scratch - What SQL database should I use with Visual Studio?

I recently got a new primary computer. On my old one, I was working with MS Visual Studio 2008 (or maybe an older version - I can't remember now). I had managed to get SQLite working with it and was in the start/middle of building an application.
On the new computer, I now have MS Visual Studio 2010. I have had problems getting SQLite to work with it. Honestly, I haven't tried super hard yet, because I realized I pretty much want to completely redesign this application anyway and it got me thinking... do I really want to use SQLite or some other SQL? MS SQL (or is it called SQL Server)? MySQL?
My end goal is to have an application that can be installed by the user with one .msi file and the user should not have direct access to the database (although at this stage, that is a secondary concern).
It seems like MS SQL / SQL Server is the easiest since it's also an MS product.... Would love some opinions!
(along with the opinions, I'd also love to be pointed to current instructions... I'm a programmer, I'm not a "coding environment setup" person and have always struggled with this. All I want is to get in there and write my application!)
Thanks in advance!
-Adeena
PS... I'm currently working with C# and would prefer to stick with it, but could easily do this in C++ (I'm fluent in all the flavors of C) if that makes a difference with the database.
SQL Server would be a good choice by the sounds of what you're after. Try the express version - it's free, good for development and prototyping and integrates really well with Visual Studio.
The SQL Server Management Studio tool is excellent. I use this to create the databases I need and then use Visual Studio to manage them (saves switching windows and running both applications when you're working in VS all day anyway). I used to have my issues with the old Enterprise manager software but things really seems to have stepped up for SQL Server 2008 and the new management studio.
Like the title of your question suggests, you're wanting to use this with Visual Studio. If you decide to do use SQL Server then you should:
Download the express edition
Download SQL Server management studio
Create a database
In Visual Studio - click View -> Server explorer -> right click Data connections and add connection. Select MS SQL Express and choose localhost as your server. You can then select the database you created using the management studio.
There you have it - integration with VS.
You say you're using C#.Net - well SQL server and .Net go hand-in-hand. Obviously you can hook up to other third party databases but SQL was really made to work with this stuff. It's a powerful database engine and will do everything you'll ever need as well as being well supported by Microsoft and the wider community.
If your final goal is to have hands-off single-click installation then I don't think SQL Server Express is your best bet because it's not a file-based embedded database. It's a great db and very easy to work with, but when it comes to deployment still takes some installation effort. You could try one of: SQL Server Compact Edition, SQLite or Firebird Embedded.
SQLExpress is free and for development purposes is pretty much interchangeable with the full SQLServer
http://www.microsoft.com/express/Database/
SQL SERVER seems to be the logical one.

Visual Studio Database Project and SQL Server Management

I enjoy using SQL Server Management Studio for change and updating my database. Its easier, faster, and safer than writing changes myself.
I was looking into using some sort of version control for databases and read about using a SQL Server Database Project in Visual Studio 2010.
I scripted out an existing database and imported it into a new SQL Server Database Project. Now, from what I can tell, there is no GUI to edit the database; I can't add columns, change datatypes, or edit existing data without scripting it myself. For instance, in SQL Server Management Studio I can right click on a table-name and select "Design" and then add/edit columns, change datatypes, etc from there.
While Visual Studio's Database Projects has some features SQL Management Studio does not have I don't think I can live without a "table designer".
Is there a table designer built into VS's Database Project I'm just not seeing?
No, there's no table designer.
If you're starting to think about version controlling your database, you ought also to be thinking about writing actual SQL to implement your database objects. That's the route that the Database Projects force you down. If you can't write the SQL for your database changes, how are you going to be able to review and appreciate a diff between how a table was 6 months ago, and how it currently is in your project?
I've been using VS2008 Database Projects for about 10 months now for our version control. Every now and then I do still use the table designer, it is a quick and easy tool. I believe the majority of your question centers around workflow as this is what I found to be the most challenging part about development in a version controlled environment. I would recommend continuing to design your objects in Management Studio or however you're comfortable and then do a create script and import that script into your Database project. There are some quirks when doing this, you'll need to always script the create statement even if you're performing an alter in your environment. As well you'll need to remove any USE statements for your database as the context in which you're importing your scripts will always be in the project you're importing to.
We have found that a successful workflow for us to facilitate code deployment is to have a production branch which is branched to a Main (development branch) and then to test. All new development is done in Main and merged by changeset to each other environment as required.
You can import your scripts from your development environment by right clicking in the solution and clicking import scripts. I recommend that you check all the options to overwrite objects that exist, import extended properties and import permissions.
After changing your DB schema using SSMS's GUI tool, you can use Database project's Schema Compare tool to update your project files (set the source to be your database and target to be your project). This way you can keep using GUI tool to manage the schema and the database project will manage the versioning.
There is no visual table designer in Visual Studio 2010 Database Project. But, concerning version control for databases, there is a workaround - you can use SQL Server Management Studio together with Red Gate's SQL Source Control. It costs some money but definitely is worth it.