Using SQL Server SDK with SQL Server Compact Edition Database - sql-server

I've been looking into the following CodeProject article:
http://www.codeproject.com/KB/tips/CreateSQLDV.aspx
and I've been trying to figure out if I can get this to work both with standard SQL Server databases, as well as SQL Server CE databases.
I can create the Database object for a standard db that's on my server:
Server dbServer = new Server("myserver.com");
Database database = dbServer.Databases["MyDB"];
But I'm having my issues when in trying to create the object for a local, compact edition database:
Server dbServer = new Server("C:\PathToDb\MyDb.sdf");
Database database = dbServer.Databases["MyDB"];
I know that in most cases there isn't much overlap between SQL Server and SQL Server CE, but considering this is the SQL Server SDKs, and SQL Server Management Studio can connect to compact edition databases, I'm thinking there must be some way I'm overlooking...

There is no SMO for SQL Server Compact, to create databases, you can use the SqlCeEngine object. For othr scripting purposes, you can use my scripting API, http://exportsqlce.codeplex.com

Related

How to copy table from SQL Linked Server to SQL Server and maintain key constraints?

I have an SQL Server installed on a local Windows 10 machine - I'm using Microsoft SQL Server Management Studio to interact with it.
I also have a DB2 database hosted on an IBM i machine and I've created a Linked Server in SQL Server Management Studio to represent it. I can connect to the Linked Server and can query/pull data from it successfully.
I'm trying to copy particular tables from the Linked Server and insert them into a Database/Schema in the SQL Server - I can do this successfully but unfortunately, it appears that in the process of copying the table over, none of the constraints (particularly in my case, the key constraints) are maintained.
Is there a simple way to copy over tables from a Linked Server to SQL Server (in SQL Server Management Studio) while maintaining key constraints?
The following query is an example of what I'm using to copy the tables over (one-by-one):
SELECT *
INTO SQLSCHEMA.SQLTABLE
FROM LINKSERVER.LINKDATABASE.LINKSCHEMA.LINKTABLE
The easiest way is to use proper tool for it like SSMA:
Microsoft SQL Server Migration Assistant (SSMA) is a tool designed to automate database migration to SQL Server from Microsoft Access, DB2, MySQL, Oracle, and SAP ASE.
Migrating DB2 Databases to SQL Server (DB2ToSQL)
SQL Server Migration Assistant (SSMA) for DB2 is a comprehensive environment that helps you quickly migrate DB2 databases to SQL Server or Azure SQL DB. By using SSMA for DB2, you can review database objects and data, assess databases for migration, migrate database objects to SQL Server or Azure SQL DB, and then migrate data to SQL Server or Azure SQL DB. Note that you cannot migrate SYS and SYSTEM DB2 schemas.

Proper way to Import data from Access to SQL Server?

I'm asking for the proper way, in SQL Server's T-SQL (I think that's what it is) code or using another language, to import data from a Microsoft Access MDB Database into a new SQL Server Database.
Now, typically I would just import it in. The problem is I'm writing a .SQL script (I could use another technology if needed) to do all this leg work as this will need to be done fairly regularly. Likely at least once a week, for about 5 months in the year.
To digress a tad, I had wanted to implement a single database and distinguish separate source database using something like a DatabaseID field, but the powers that be overthrew me there.
I was previously using SQL Server Management Studio 2012 with SQL Server 2008 running the T-SQL (on a production machine) that worked fine. I've now migrated to a local SQL Server Management Studio 2012 with SQL Server 2012 (for development) and the code that used to work doesn't anymore.
This code is what used to work: SELECT * INTO [dbo].[Controls] FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0', 'Data Source=C:\Show.mdb; Jet OLEDB:Database Password=BobSaget')...[Control] The password has been obfuscated for security ...
That's likely a sloppy solution. What's the ideal way?
Thanks in advance!
I would recommend using Microsoft's SQL Server Migration Assistant for Access.
SQL Server Migration Assistant (SSMA) is a free supported tool from Microsoft that simplifies database migration process from Access to SQL Server. SSMA for Access automates conversion of Microsoft Access database objects to SQL Server database objects, loads the objects into SQL Server, and then migrates data from Microsoft Access to SQL Server.
SSMA for Access v5.2 is designed to support migration from Microsoft Access 97 and higher to all editions of SQL Server 2005, SQL Server 2008, SQL Server 2008 R2, SQL Server 2012, and SQL Azure.
You can find it here.
You may need to fix the structure after the migration as it tends to over exaggerate many of the data types.
Have you checked your DCOM security on MSDAINITIALIZE?
I had this problem when moving to a local instance of SSMS 2012.
http://blogs.msdn.com/b/dataaccesstechnologies/archive/2011/09/28/troubleshooting-cannot-create-an-instance-of-ole-db-provider.aspx

VB.NET - Switch Network SQL Server 2008 R2 Database to a mobile SQL Server CE *.sdf File

I have developed a VB.NET program using a strongly typed dataset. This dataset has its connection to a SQL Server 2008 R2. The software should now be additionally used offline. The database should be exported to a *.sdf database. If no connection to the SQL server is produced, the software have to try to connect to the *.sdf database.
I would like to achieve:
1. Export the data in the SQL Server 2008 R2 database to a local *.sdf file.
2. This *.sdf file has to work as an alternate connection string in the strongly typed dataset.
How can I achieve this?
My SQL Server Compact Toolbox can help you with question 1. http://erikej.blogspot.com/2010/02/how-to-use-exportsqlce-to-migrate-from.html

How to connect to a SQL Server database from local pc?

I am a Crystal Reports developer and I have always been working with Oracle database and this is my first time with SQL Server.
This is what I have been desperately searching for.
From my local PC, I want to connect to a SQL Server database which is on a database server.
I am aware that I need a 'SQL Server Native Client'. And I am also aware that I need to use 'sql server management studio' so that I can view the tables and writes queries instead of using a tool like TOAD.
My questions are:
Can I use 'Microsoft SQL Server Management Studio Express' from my local PC to connect to a SQL Server 2005 Database in a database server?
If I install 'Microsoft SQL Server Management Studio Express' do I still need to install a 'SQL Server Native Client'?
Thanks,
rivi
Can I use 'Microsoft SQL Server Management Studio Express' from my local PC to connect to a SQL SERVER 2005 Database in a database server?
Yes.
If I install 'Microsoft SQL Server Management Studio Express' do I still need to install a 'SQL Server Native Client'?
If you want to connect to the database from your application you will need it installed. It should be installed as part of the SSMS install.
Answer 1:
SQL Server Management Studio can be used to manage either local or remote SQL database server.
If you installed SQL Server Express, the default instance will be SQLExpress. To connect it locally using Windows Credential, just type .\SQLExpress or yourmachinename\SQLExpress in the server name textbox.
If you host the SQL Server on a remote server, you must use the credential given by the authority hosting your SQL Server. It is easy, ask your admin for the details.
Answer 2:
See this for the details
I copy and paste the important notes from the link above here:
When deciding whether to use SQL Server Native Client as the data access technology of your application, you should consider several factors.
For new applications, if you're using a managed programming language such as Microsoft Visual C# or Visual Basic, and you need to access the new features in SQL Server, you should use the .NET Framework Data Provider for SQL Server, which is part of the .NET Framework.
If you are developing a COM-based application and need to access the new features introduced in SQL Server, you should use SQL Server Native Client. If you don't need access to the new features of SQL Server, you can continue to use Microsoft Data Access Components (MDAC).
For existing OLE DB and ODBC applications, the primary issue is whether you need to access the new features of SQL Server. If you have a mature application that does not need the new features of SQL Server, you can continue to use MDAC. But if you do need to access those new features, such as the new xml Data Type, you should use SQL Server Native Client.
Both SQL Server Native Client and MDAC support read committed transaction isolation using row versioning, but only SQL Server Native Client supports snapshot transaction isolation. (In programming terms, read commited transaction isolation with row versioning is the same as Read-Committed transaction.) For more information, see Choosing Row Versioning-based Isolation Levels.
For information about the differences between SQL Server Native Client and MDAC, see Updating an Application to SQL Server Native Client from MDAC.

copying oracle to sqlserver 2005 jdbc

Is there any way of copying a database from oracle to sqlserver 2005? Thanks
You can migrate from Oracle to SQL Server with Microsoft's SQL Server Migration Assistant. It is available both to SQL Server 2005 and 2008.
If you have lots of (complicated) stored procedures and such, the migration might get a bit tedious. I have only experience with databases with simple procedures and could just rewrite them and do the data copy to empty tables in SQL Server with the import functionality using Oracle connector (usable from SQL Server if you have installed Oracle client tools to the SQL Server machine). This way I didn't even need to use the Migration Assistant tool.

Resources