I've given a task to import data from Sybase to SQL server 2012, and I figured that the easiest way for me (I am a beginner) to do this is to set up a linked server from SQL server to the Sybase and import data from there.
The Sybase and the SQL server are not on the same computer, but I can remote-access to either one from my computer just fine. I am having a difficulty in trying to set up a link in between these two, though, and I would greatly appreciate any help.
On the Sybase, the System DSN only has SQL Anywhere 12 CustDB right now. Can this work as the ODBC driver, or do I have to install a Sybase ODBC driver?
Also, I have not come across from my research yet, but is there a way to import data from Sybase to SQL server just by using a SQL script? I understand if there were, it would probably be out of my league, but still...
Thanks!
Sybase ASE, Sybase IQ and Sybase SQL Anywhere are different products so you will need to install the correct ODBC driver depending on what the target Sybase database is actually running as this was not mentioned in your question.
In terms of exporting/importing data you can use the bcp too to export/import data from the command line (this utility is available for both Sybase and MS SQL), but you just need to be cautious regarding character set differences between the Sybase and MSSQL instances. For example the default Sybase out of the box install is binary case-sensitive whereas MSSQL is often installed as case-insensitive.
Related
A database that was originally from SQL Server 2008, was restored into SQL Server 2012. A backup from SQL Server 2012 was made and I am trying to restore it on my local SQL Server 2008 Express. However I get an error 'Specified cast is not valid' (SQLManagerUI).
I have generated an SQL Script from 2012 and set it so that it will generate with compatibility to SQL Server 2008. However it is a large sql file, around 700mb.
I recall before that I had tried to run a script of that size before on my local SQLExpress and also got an error.
Is there a way I can get a "large" database from SQL Server 2012 into SQL Server 2008 Express?
Thanks to Marc and Aaron for providing the answers.
The quick answer is no, it's not possible to restore a backup file from a higher version to a lower version of SQL Server.
A work around would be to generate the scripts to create the database.
You can target the script generation to a lower version.
Please see comments above for more information.
Links:
Why an SQL Server Database from a higher version cannot be restored onto a lower version of SQL Server?
Create Database in SQL Server 2012, Script and Use in 2008?
Couple things to add that might be helpful to folks
When scripting large databases using scripting wizard in SSMS it’s really important to check the execution order and be willing to re arrange it manually. Older versions of SSMS had this problem because they (probably) relied on sp_depends that has a bug.
What I’ve found really useful in such cases are tools like ApexSQL Diff that you can use to read database backups and generate scripts that are in correct execution order.
SQL Server database backup restore on lower version
One thing that none of the methods will catch is the thing Aaron mentioned about using functions specific to higher version.
A better option than using the SSMS scripting wizard is to use a similar tool available on Codeplex called SQL Database Migration Wizard - http://sqlazuremw.codeplex.com/releases/view/32334. You want the latest version v4.x to work with SQL Server 2012.
The tool is originally intended to be used for migrating databases between SQL Server and Azure. However the tool works just as well as between SQL Server and SQL Server. The trick is to set SQL Server rather than Azure as the target in the advanced options.
The reason this is a better option than the SSMS scripting wizard is that it uses BCP for the data transfer rather than TSQL and so is much more efficient.
I want to migrate a Btrieve Database to Microsoft SQL Server 2008 R2. I already have done the step of migration to Pervasive PSQL 10 Workstation (x86), which offers an ODBC / OLE DB driver. (It seems Microsof doesn't offer any solution to import Btrieve.)
Ok, so far so good, but how can I transfer the whole database (schema and data) into Microsoft SQL Server? The Import Wizard of SQL Server crashes every time and is useless, because it doesn't map Date- and Memo-Datatypes correctly. I also tried to map these datatypes manually, but the wizard always crashes, caused by ODBC-Errors.
So, I'm looking for a tool which offers a native driver to Btrieve or PSQL 10. It would be nice if it is free, because I only need it for this single migration.
TIA! ^^
There is a tool with a Btrieve driver but you still need the DDFs (just like in ODBC) available from Pervasive called Data Integrator. It is not free but you can find more information at http://integration.pervasive.com/.
Another more manual option would be to export the data from PSQL to CSV, then import the CSV to the MS SQL server. You would have to manually create the tables in the MS SQL database but it could be done with the tools you have.
Also, you say it's crashing with ODBC errors. Are the ODBC errors from PSQL or MS SQL? What are they?
I hava a sqlite3 database placed in the documents folder. I need to sync this database with the sql server 2005, which is running at our server.
Is there a possibility that i can do a Replication between a sqlite3 database and a MSSql server 2005.
Are you married to sqlite3? Because the short answer, to the best of my knowledge is not really- with 3 potential options:
I've heard of some savvy programmers having a bit of luck writing their own code either using delimited text or XML or the SqlClient provider for .NETCF to move data between the server and sqlite3 database.
You can do snapshot replication to any ODBC data source. But this might mean either copying your sqlite database to your server or finding another replication product which can go between SQLite and an ODBC desktop database.
The last option I can think of is to switch from sqlite3 to sql mobile edition / sqlce or sql express (depending on if this is a device or something else) as you would have the option to set up replication or RDA (remote data access) between the those databases and your ms sql server 2005 db- hence the question are you married to sqlite3?
Also- I just was reading about SQL Anywhere (ultralite) from Sybase which is a free solution. This little database has a pretty small footprint and also support MobiLink Synchronization Wizard which allows you to setup replication with your MS 2005 db. Here is a moderately useful article about MobiLink Synchronization.
if you decide to consider option 3 here are some articles to help set up RDA or Replication with your db's.
It's not plug-n-play but the Microsoft Sync Framework (http://msdn.microsoft.com/en-us/sync/bb736753) will do it.
I've downloaded and installed the iPhone to SQL Server sync sample and run it. It's actually pretty slick, Works great. It was just a basic test but perhaps it will help you.
I have set up Oracle Linked server on Sql Server 2005 box using Oracle provider oledb and its working fine from sql server 2005 to oracle 9i, i.e. When i run distributed query from sql server i get data from oracle server to sql server. Now I don't have any clue how do i run distributed query from Oracle server and get data from sql server repeatedly. Do i have to set up Dsn ? What other things i have to set up before i run query from oracle server?
FYI : Oracle server is Sun solaris server and SQL server is x64 Windows Server 2003. Sql server has oracle client installed on it with odac drivers for ORACLE Provider for OLEDB.
I am going to use loadjava to load java into oracle and than move data between both repeatedly. (Java, Stored procedures & Triggers from oracle to get data from sql server)
Here is one way. DG4ODBC setup guide here.
This might help, too.
linking databases is the first phase. After that you may face the problems we faced, like not being able to delete fetched rows from Sql Server to Oracle Server remotely.
I will post a question about that, it is odd that our procedures used for data synching do not respons the same.
We have a Microsoft SQL Server 2005 database that needs to be converted back to SQL Server 2000. Does anybody have any suggestions on the approach or tools I should use to perform this conversion? We don't utilise any SQL Server 2005 specific features in the database so this should not make the conversion problematic.
I should mention that I have found the Microsoft SQL Server Export facility very buggy in dealing with Auto Generated Keys so suggestions for alternative tools would be appreciated.
Generate a full script for your database in SQL2005, and change the "Script for Server Version" option to SQL Server 2000. You can now recreate your database on the SQL 2000 server. After this is complete, use the export data feature to export from SQL 2005 to SQL 2000.
Get a trial of RedGate SQL ToolBelt, then use:
SQL Compare to transfer the database
SQL Data Compare to transfer the data
Script out the entire database
Create a new SQL2000 database
Run the script on the new database
Import the data from the SQL2005 to the SQL2000 database (lots of ways to do this)
There probably is a tool somewhere that does all this for you, although I don't know how commonly this is done.
What you want to do is called downgrading. Google gives lots of results, but here's a good walkthrough on a thread of Microsoft's forums (scroll down near the bottom of the page).