SSDT Compare I have just found does not recongize it's own SQLCMD variables.
I have a SSDT SQL Project that I deploy to a DEV database.
I want to compare the SSDT SQL Project to the DEV database after deploy.
The problem is the SQLCMD variables in the project get flagged as differences by the compare engine.
WTH? This is a serious DEFECT and LIMITATION Microsoft has apparently not rectified in many years.
Am I missing something or is this just really bad?
Related
For the past few days I'm running into an error, which is well known, but I can't understand what I need to do, even after reading so many different solutions. But please let me start with the task.
A predecessor created a business critical SSIS package using SQL Server Data Tools (2005) 4-5 years ago that basically reads a large table in the database and then segregates the data categorically and pumps the data into separate tables in the same database. At the end it reads the data from these segregated/categorised data tables and exports the data into respective Excel files in a Network drive in the same folder. All these tables have different data dictionaries. All these Excel files are 97-2003 format (.xls).
The Production server is SQL 2005 and Windows 2003. and a New Development environment is created with SQL Server 2012 and Windows 2012, where I need to migrate all the databases, SQL Jobs, SSIS packages. Majority of them completed and are running without issue. I left the complex SSIS packages to the last, so I can deliver something to business to test on.
Now my task is to upgrade the package to write into Excel 2007 xlsx files. No changes at the database level. So, I created OLE DB Connections for all the Excel files and the connections appear to work fine when clicked on Test Connection in Connection dialog. All these Excel files sit in the Dev SQL Server in the same folder (\DevServer\p$\SSIS_Jobs\Process_Data) as the SSIS package. I set the Extended Properties = Excel 12.0 XML in Connection manager. But when I run the package in the BIDS, I'm getting
"Failed to acquire connection "Excel07_Con1". Connection may not be configured or you may not have the right permissions on this connection."
The package is set to 32 bit mode and MSOffice installed is 32bit and installed the Microsoft Access Database Engine 2010 (32-bit) drivers. And the Dev Network drive has Full rights to EveryOne to ReadWrite.
Since this is the last step in the process, the whole job is failing because of this. I'm sure gone through lot of responses to similar questions. Any help would be highly appreciated.
Thanks - Madhu
have you checked project properties? It might be the case that the project in BIDS the following property Runas64Bit is set to TRUE.
Thanks for your responses, I've solved the issue by recreating the package from scratch in SSDT2012. Now the package is working. I suspect it could be the Excel drivers.
Thanks for your time again. - Madhu
I have two database files named as .mdf and .ldf which are created in SQL Server 2012 and now on my pc I installed Visual Studio 2010 and SQL Server 2008 Express.
When I try to attach these database files to SQL Server 2008 it gives me error.
The database 'C:\PROGRAM FILES\MICROSOFT SQL
SERVER\MSSQL10.SQLEXPRESS\MSSQL\DATA\CMS_DB.MDF' cannot
be opened because it is version 706. This server supports version 655
and earlier. A downgrade path is not supported.
Could not open new database 'C:\PROGRAM FILES\MICROSOFT SQL
SERVER\MSSQL10.SQLEXPRESS\MSSQL\DATA\CMS_DB.MDF'. CREATE
DATABASE is aborted.
An attempt to attach an auto-named database for file C:\Program
Files\Microsoft SQL
Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\CMD_DB.mdf failed. A
database with the same name exists, or specified file cannot be opened,
or it is located on UNC share.
When open database in ssms 2008 then error :
Attach database failed for Server 'MATRIX-PC\SQLEXPRESS'. (Microsoft.SqlServer.Smo)
Additional information:
An exception occured while executing a Transact-SQL statement or batch.
(Microsoft.SqlServer.ConnectionInfo)
The database 'C:\USERS\RAJ\DESKTOP\COLLEGE MANAGEMENT SYSTEM(.NET 4.5)\ COLLEGE MANAGEMENT SYSTEM\BIN\DEBUG\CMD_DB.MDF' cannot be opened because it is version 706.
This server supports version 655 and earlier. A downgrade path is not supported.
Could not open new database 'C:\USERS\RAJ\DESKTOP\COLLEGE MANAGEMENT SYSTEM(.NET 4.5)\COLLEGE MANAGEMENT SYSTEM\BIN\DEBUG\CMD_DB.MDF'. CREATE DATABASE is aborted.
(Microsoft SQL Server, Error: 948)
No, you can only move forward.
This means, you can restore the database from 2005 or 2008 to 2012 version but can not do it in reverse order. The next most popular question I receive is if we can’t restore a SQL Server 2012 database to earlier version what is the next best option?
I have personally faced this issue once before and I had manually created T-SQL script using Script and Data Generator Wizard in SQL Server 2012 and rebuild my database in
SQL Server 2008R2. If you have many different databases which you want to address, you can use SSIS to
automate the script generation.
As noted if you want to access a 2012 db from 2008 you will have to migrate the database back to 2008. This will only be possible if you have not used 2012-specific features in the db. If you have and still want to perform the migration you should first try and identify these where they occur and fix those first.
As noted above one option is to generate T-SQL scripts and use these to regenerate the db in 2008. However for a large db this could be time consuming and hard work to get to actually work.
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 between SQL Server 2012 and SQL Server 2008. 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 migrated a 7GB database in about 2 hours with this with most of the time spent drinking tea while the machine worked away. Importantly, it all just worked with no requirement for me to start editing files to fix problems like too many commands, timeouts etc.
I'm looking for some advice over the best way to transfer data from a local MSSQL DB to a remote MYSQL database every 5 mins?
At the moment I am using a tool called SQLYOG which allows me to create a connection to my local MSSQL database and to my remote MYSQL server and set up some queries and mapping.
It also allows me to create a windows scheduled task which runs every 5 minutes.
This solution has been working ok but is only about 95% reliable and seems to struggle sometimes.
This software runs in GUI mode and via cmd prompt so is reasonably light weight when running a scheduled task.
Does anyone know of any other light weight tools or methods I can use to get the same outcome?
You can use SymmetricDS. its a good & efficient open source tool for this purpose.
you can use SSIS packages to do that.
SQL Server Integration Services (SSIS) is a component of the Microsoft SQL Server database software that can be used to perform a broad range of data migration tasks.
Couple of options:
1. create linked server to mysql then copy rows via linked server in sp, set sql job to execute.
2. build ssis package and run it in sql job.
What I feel is the best soultion for this is to design an ETL job using either SSIS or Talen Open Studio.
I have a DBPro database project that was created for Sql 2005. I am trying to build this on a different environment, with Sql 2008, and I am getting the following error:
MSBUILD : Build error TSD158: An unsupported target database version was encountered.
I couldn't find much on this error, and I am unclear what is the conflict. I have tried to change the buildversion element in the database project from 9.0.21022.8 to 10.0.0.0 but that didn't make any difference. I am out of ideas. Any thoughts?
To target SQL Server 2008, don't you need some GDR update? See http://blogs.msdn.com/gertd/archive/2008/11/25/visual-studio-team-system-2008-database-edition-gdr-rtm.aspx
Also, it might be easier to take your database, restore it on SQL Server 2008 (and let the database upgrade the database itself). Then just start a new project where you suck down the schema. But I still think you'll need the GDR in order to do that.
I am using 64-bit Vista and I need to migrate an access database, in Office 2007 to SQL Server.
I don't want to have to write an SSIS package to do this, but that may be my only option.
Is there any other way to do this? I have about 330M of data in Access that needs to be moved, so I can write a webapp to replace this database.
Update: The error is:
The upsizing Wizard does not work with the version of Microsoft SQL Server to which your Access project is connected. See the Microsoft Office Update Web site for the latest information and downloads.
In Access, use the upsizing wizard under tools menu...
Edit, checked to see if it's still there: it has issues with SQL Server 2008.
Do you get the same error? (yes you do, says your edit)
Alternative: SSMS/Migration for Microsoft Access
See if creating a Linked Table inside Access DB (which points to your destination table in SQL Server) helps.
OR
See if you can use SQL Server functions (such as OPENROWSET) to open the Access tables.
The SQL Server 2008 Import/Export tool has worked great for me for migrating tables as well as data. You may need to install the SQL Management Studio to get the import tool also (it'll show up in your Start menu). It supports moving tables/data around from various sources, and I'm guessing that Access 2007 is supported.
That said, the SSMS/Migration for Microsoft Access tool may work the best overall.
Best of luck.
When all else fails, you could try creating an ODBC DSN for your SQL Server and then export the tables to that DSN. It won't get all the datatypes right, but it might be good enough to get things started if nothing else works.
I think it's pretty amazing that you can export a Jet/ACE table to an ODBC data source, to be honest.