Is it recommended to use two versions of SQL Server (2005 and 2008) for storing data of an application. We have a situation where we have an existing web application consuming SQL server 2005 as a database. Some enhancements in the application required us to solution a FILESTREAM data store. Now we have our data in SQL Server 2005 and associated FILESTREAM data in SQL Server 2008. Being very new to SQL Server I would like to ascertain how bad is this in terms of performance? How can we achieve atomicity across both the database versions, is it via using a linked server or some other mechanism? Any alternative solutions would be fine except that we just cannot migrate the existing application to SQL Server 2008.
To keep your transactions ACID, you can use distributed transactions at a stored procedure level, or from a code level using DTC (e.g. via a .net TransactionScope). DTC would need to be present on both SQL Servers, and on your App Server as well if you do the ACID from there. There is some overhead with DTC
Edit : You will also need to link the servers with sp_addlinkedserver and provide credentials with sp_addlinkedsrvlogin
Related
Is it possible to set up a replication between an SQL Server Express Database that we can't touch, with an SQL Server Standard database?
We only have read-only access on the SQL Server Express database, so we are oblige to use only SQL requests.
We thought of using a python script and doing the replication ourselves, but is there a framework that can do that ?
We don't need realtime replication, a time span of minutes is enough.
We want to be able to query the Data Warehouse database from the SQL Server database both with the same server name in Azure. Select statements including the database name (e.g. select * from server.dbo.product) returns with error that a reference to the database and/or server name isn't supported in this version of SQL Server. There are articles on creating an external data source in the SQL Server database but we get error that the credentials don't have permission to perform this action.
Azure SQL (as of Azure SQL V12 in late-2016) does not support cross-database queries the same way that they do with a normal on-premises SQL Server (e.g. using the DatabaseName.schemaName.TableName syntax).
Given that Azure SQL and Azure Data Warehouse databases each reside in different physical servers it wouldn't work anyway, as the above syntax is intended for databases that all reside in the same server.
Azure SQL does support cross-database calls via the EXTERNAL DATA SOURCE feature, which we have in normal on-premises SQL Server already. This is documented here: https://azure.microsoft.com/en-us/blog/querying-remote-databases-in-azure-sql-db/
Note that performance won't be that great and you might be better-off doing the querying in your application code. For example complex JOINs which reduce data will run suboptimally.
I'm a newbie,Can you please specify any tools or methods for managing sql server database from sqlite or vice versa...or both,if possible..
What do you mean by managing? Neither MS SQL Server nor SQLite is a manager for SQL databases and specially not managers for each others.
For managing a SQL Server database, you can use SQL Server Management Studio.
For managing a SQLite database, you can use for example Firefox SQLite manager plugin
See also how to export from SQLite to SQL Server
Does Microsoft SQL Server 2008 Express support transactions?
According to the page http://msdn.microsoft.com/en-us/library/cc645993(v=sql.100).aspx subscribers only. But what does that mean?
I would like to start an transaction from an C# application.
Yes, it does. SQL Server and SQL Server Express Edition are essentially identical apart from some restrictions in the latter (e.g. maximum size of a database) - all the basic RDBMS features work exactly the same.
Transactional replication has very little to do with the transactions you mean.
That's "transactional replication", not SQL transactions. Transactional replication is a method replicating databases across servers.
Yes, SQL Server Express supports transactions.
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