Sunday, March 25, 2012
Comparing DBs
the same SQL Server database in terms of definition and objects. I don't
want to compare data. I need to see the differences in tables columns views
etc.
Thanks,
GaryThere are quite a few companies that make such products. Check out this
list: http://vyaskn.tripod.com/thirdparty.htm
--
HTH,
Vyas, MVP (SQL Server)
http://vyaskn.tripod.com/
Is .NET important for a database professional?
http://vyaskn.tripod.com/poll.htm
"Gary" <gb@.nospam.com> wrote in message
news:ewGG5cf2DHA.2308@.TK2MSFTNGP11.phx.gbl...
is there any utility or program available that will compare two versions of
the same SQL Server database in terms of definition and objects. I don't
want to compare data. I need to see the differences in tables columns views
etc.
Thanks,
Gary|||We use the following tool
http://www.adeptsql.com/
Its cheap, very accurate, very fast and will also update
your out of sync database if you wish. There is also a
trial version which you can download.
J
>--Original Message--
>is there any utility or program available that will
compare two versions of
>the same SQL Server database in terms of definition and
objects. I don't
>want to compare data. I need to see the differences in
tables columns views
>etc.
>Thanks,
>Gary
>
>.
>|||We use ERWin by Computer Associates.
a bit spendy but it does More then just compare Databases.
http://www3.ca.com/Solutions/Product.asp?ID=260
Gregory A Jackson
PDX, Oregon|||Hi Gary,
Thank you for using MSDN Newsgroup! It's my pleasure to assist you with
your issue.
For your question of compare the two versions of the same SQL Server
database in terms of definitions and objects but not data in them. Besides
the utiltities suggested by our MVPs and community members, if the compare
is quite simple, you can just generate a 'script' that define the objects
in 2 SQL Server respectively and compare the script. To generate the
script, they can use SQL Enterprise Manager and choose the "Object|Generate
SQL Script..." menu item. Another way is to use 'sp_help' upon each object
in the 2 database and compare them.
Hope this helps. If you still have questions on this issue, please feel
free to post new message here and I am ready to help!
Best regards
Baisong Wei
Microsoft Online Support
----
Get Secure! - www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.
Please reply to newsgroups only. Thanks.|||Hi Gary,
As said in the answers, you can use tools to compare the databases.
I prefer to use the sysobjects table to do that, simply by doing
a
SELECT * from db1.sysobjects where not in (SELECT * from db2.sysobjects)
or
SELECT * from db2.sysobjects where not in (SELECT * from db1.sysobjects)
This works if you want to analyse the difference in term of tables
and fields.
To have a deeper analysis (fields of different types) it is more difficult
but possible with other system tables like syscolumns.
Gilles
"Gary" <gb@.nospam.com> wrote in message news:<ewGG5cf2DHA.2308@.TK2MSFTNGP11.phx.gbl>...
> is there any utility or program available that will compare two versions of
> the same SQL Server database in terms of definition and objects. I don't
> want to compare data. I need to see the differences in tables columns views
> etc.
> Thanks,
> Gary|||also check out DB Ghost @. www.dbghost.com
regards,
Mark Baekdal
>--Original Message--
>is there any utility or program available that will
compare two versions of
>the same SQL Server database in terms of definition and
objects. I don't
>want to compare data. I need to see the differences in
tables columns views
>etc.
>Thanks,
>Gary
>
>.
>|||I downloaded it and tried it out. Works great. Many thanks.
Gary
"Julie" <anonymous@.discussions.microsoft.com> wrote in message
news:0d0601c3d9fa$103b29b0$a601280a@.phx.gbl...
> We use the following tool
> http://www.adeptsql.com/
> Its cheap, very accurate, very fast and will also update
> your out of sync database if you wish. There is also a
> trial version which you can download.
> J
>
> >--Original Message--
> >is there any utility or program available that will
> compare two versions of
> >the same SQL Server database in terms of definition and
> objects. I don't
> >want to compare data. I need to see the differences in
> tables columns views
> >etc.
> >Thanks,
> >Gary
> >
> >
> >.
> >
Comparing DBs
the same SQL Server database in terms of definition and objects. I don't
want to compare data. I need to see the differences in tables columns views
etc.
Thanks,
GaryThere are quite a few companies that make such products. Check out this
list: http://vyaskn.tripod.com/thirdparty.htm
--
HTH,
Vyas, MVP (SQL Server)
http://vyaskn.tripod.com/
Is .NET important for a database professional?
http://vyaskn.tripod.com/poll.htm
"Gary" <gb@.nospam.com> wrote in message
news:ewGG5cf2DHA.2308@.TK2MSFTNGP11.phx.gbl...
is there any utility or program available that will compare two versions of
the same SQL Server database in terms of definition and objects. I don't
want to compare data. I need to see the differences in tables columns views
etc.
Thanks,
Gary|||We use ERWin by Computer Associates.
a bit spendy but it does More then just compare Databases.
http://www3.ca.com/Solutions/Product.asp?ID=260
Gregory A Jackson
PDX, Oregon|||Hi Gary,
Thank you for using MSDN Newsgroup! It's my pleasure to assist you with
your issue.
For your question of compare the two versions of the same SQL Server
database in terms of definitions and objects but not data in them. Besides
the utiltities suggested by our MVPs and community members, if the compare
is quite simple, you can just generate a 'script' that define the objects
in 2 SQL Server respectively and compare the script. To generate the
script, they can use SQL Enterprise Manager and choose the "Object|Generate
SQL Script..." menu item. Another way is to use 'sp_help' upon each object
in the 2 database and compare them.
Hope this helps. If you still have questions on this issue, please feel
free to post new message here and I am ready to help!
Best regards
Baisong Wei
Microsoft Online Support
----
Get Secure! - www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.
Please reply to newsgroups only. Thanks.|||Hi Gary,
As said in the answers, you can use tools to compare the databases.
I prefer to use the sysobjects table to do that, simply by doing
a
SELECT * from db1.sysobjects where not in (SELECT * from db2.sysobjects)
or
SELECT * from db2.sysobjects where not in (SELECT * from db1.sysobjects)
This works if you want to analyse the difference in term of tables
and fields.
To have a deeper analysis (fields of different types) it is more difficult
but possible with other system tables like syscolumns.
Gilles
"Gary" <gb@.nospam.com> wrote in message news:<ewGG5cf2DHA.2308@.TK2MSFTNGP11.phx.gbl>...
quote:sqlsql
[col
or=darkred]
> is there any utility or program available that will compare two versions o
f
> the same SQL Server database in terms of definition and objects. I don't
> want to compare data. I need to see the differences in tables columns vie
ws
> etc.
> Thanks,
> Gary[/color]
Thursday, March 22, 2012
Comparing databases
I need to compare 2 databases to check for missing objects, columns, etc.
Comparing objects was pretty easy. Just a pair of sql statements on the
sysobjects table and it worked fine.
Now I need to go a level deeper, by comparing missing & different columns in
tables. Is it possible to get the results from the system tables or do I
have to use DMO?
Thanks,
IvanIvan
Visit at http://www.red-gate.com
"Ivan Debono" <ivanmdeb@.hotmail.com> wrote in message
news:OywqAZsiGHA.1508@.TK2MSFTNGP04.phx.gbl...
> Hi,
> I need to compare 2 databases to check for missing objects, columns, etc.
> Comparing objects was pretty easy. Just a pair of sql statements on the
> sysobjects table and it worked fine.
> Now I need to go a level deeper, by comparing missing & different columns
> in
> tables. Is it possible to get the results from the system tables or do I
> have to use DMO?
> Thanks,
> Ivan
>|||I know that there are quite a few tools that exist, but I need to develop my
own tool as this will be part of yet another bigger suite of tools.
"Uri Dimant" <urid@.iscar.co.il> schrieb im Newsbeitrag
news:u9YYEdsiGHA.3884@.TK2MSFTNGP04.phx.gbl...
> Ivan
> Visit at http://www.red-gate.com
>
>
> "Ivan Debono" <ivanmdeb@.hotmail.com> wrote in message
> news:OywqAZsiGHA.1508@.TK2MSFTNGP04.phx.gbl...
etc.
columns
>|||Well , then I'd use DMO objects library
"Ivan Debono" <ivanmdeb@.hotmail.com> wrote in message
news:%231DU91siGHA.3780@.TK2MSFTNGP03.phx.gbl...
>I know that there are quite a few tools that exist, but I need to develop
>my
> own tool as this will be part of yet another bigger suite of tools.
>
> "Uri Dimant" <urid@.iscar.co.il> schrieb im Newsbeitrag
> news:u9YYEdsiGHA.3884@.TK2MSFTNGP04.phx.gbl...
> etc.
> columns
>|||What to use depends on whether you prefer to work at the TSQL level or at th
e API level:
TSQL: For 2000, use syscolumns. For 2005, use sys.columns. Or (either versio
n) use the
information_schema views.
API: For 2000, use DMO. For 2005, use SMO.
Tibor Karaszi, SQL Server MVP
http://www.karaszi.com/sqlserver/default.asp
http://www.solidqualitylearning.com/
"Ivan Debono" <ivanmdeb@.hotmail.com> wrote in message
news:%231DU91siGHA.3780@.TK2MSFTNGP03.phx.gbl...
>I know that there are quite a few tools that exist, but I need to develop m
y
> own tool as this will be part of yet another bigger suite of tools.
>
> "Uri Dimant" <urid@.iscar.co.il> schrieb im Newsbeitrag
> news:u9YYEdsiGHA.3884@.TK2MSFTNGP04.phx.gbl...
> etc.
> columns
>|||
> Now I need to go a level deeper, by comparing missing & different columns
in
> tables. Is it possible to get the results from the system tables or do I
> have to use DMO?
Try this
select name from <DB1>..syscolumns where
id=object_id('<DB1>..<TABLE_NAME>') and name not in
(select name from <DB2>..syscolumns where
id=object_id('<DB2>..<TABLE_NAME>'))
--This will return the additional columns in table in another database.
You can well modify it to meet your specefic requirement.
Monday, March 19, 2012
Compare two databases and update objects?
database and the second being a new database, I will
update the old database's objects to match the new database's
objects?
Is there SQL code that could do this easily?
How do you do this if you deal with the same scenario?
Thank youserge (sergea@.nospam.ehmail.com) writes:
> Is there a way to compare two databases one being an old
> database and the second being a new database, I will
> update the old database's objects to match the new database's
> objects?
> Is there SQL code that could do this easily?
The standard recommendation is to look at SQL Compare from Red Gate.
> How do you do this if you deal with the same scenario?
I'm avoiding it by having my code under version control, and keeping
track of what I shipped. Our load tool actuall has its own set of tables
to do this.
--
Erland Sommarskog, SQL Server MVP, esquel@.sommarskog.se
Books Online for SQL Server SP3 at
http://www.microsoft.com/sql/techin.../2000/books.asp|||DB Ghost is a tool that will compare databases and upgrade a target
database to make it match a source.
It also integrates with any source control system so the 'source'
database becomes a simple set of drop/create scripts. The power of
this approach is that it enables any size of development team to work
on the schema under source control at the same time using the same
mechanism that they do for other application code such as C#, Java, VB,
C++ etc. This provides you with a full audit trail of who made what
changes to the schema, when and why.
This process is one that delivers more as your development needs
increase. For example it doesn't matter how many developers work on
the scripts in source control, the amount of time required to extract
all the scripts and perform the upgrade doesn't noticeably increase.
Also, this process works perfectly with parallel development as it
means that concepts such as isolated worksets and merges between code
lines becomes as easy as it is with normal application code. Try doing
parallel development with delta scripts, it is a completely error prone
manual process of looking through the delta scripts to work out what
has been changed!
Diff tools such as SQL Compare are great at what they do but,
ultimately, they are really just there to get you out of trouble.
This trouble is normally caused by not having proper processes and
tools to control changes to your schema.
DB Ghost plus any source control system gives you such a process.
Malcolm
www.dbghost.com
Build, Compare and Synchronize = Database Change Management for SQL
Server
compare table related objects
I am migrating a database from one server SQL 6.5 to another SQL 2000. I
want to have script to compare table related objects (index/PK/FK/constraint)
for all the tables in the database to make sure nothing missing.
Anyone can help?
Julia wrote:
> Hi,
> I am migrating a database from one server SQL 6.5 to another SQL
> 2000. I want to have script to compare table related objects
> (index/PK/FK/constraint) for all the tables in the database to make
> sure nothing missing.
> Anyone can help?
I'm not familiar with SQL 6.5, but in SQL 2000 there are the
INFORMATION_SCHEMA views that can be used to obtain a list of tables,
constraints, etc. You could use this to check that everything's there.
John.
|||sql6.x does not have info_ views yet. You will have to look at sysobjects
for the list of objects. If you want to compare definition, you will have to
check out syscomments.
-oj
"Julia" <Julia@.discussions.microsoft.com> wrote in message
news:34ACC6D7-4157-4324-9960-2F099809C4A3@.microsoft.com...
> Hi,
> I am migrating a database from one server SQL 6.5 to another SQL 2000. I
> want to have script to compare table related objects
> (index/PK/FK/constraint)
> for all the tables in the database to make sure nothing missing.
> Anyone can help?
>
>
|||I thought that might be the case.
In which case (assuming the migration is straight over and the objects will
either exist and be correct, or be missing), sysobjects with an appropriate
filter on the xtype column sounds ideal - BOL has full documentation on this
column (e.g. a value of U for user table, F for foreign key etc.)
John.
oj wrote:[vbcol=seagreen]
> sql6.x does not have info_ views yet. You will have to look at
> sysobjects for the list of objects. If you want to compare
> definition, you will have to check out syscomments.
>
> "Julia" <Julia@.discussions.microsoft.com> wrote in message
> news:34ACC6D7-4157-4324-9960-2F099809C4A3@.microsoft.com...
compare table related objects
I am migrating a database from one server SQL 6.5 to another SQL 2000. I
want to have script to compare table related objects (index/PK/FK/constraint
)
for all the tables in the database to make sure nothing missing.
Anyone can help?Julia wrote:
> Hi,
> I am migrating a database from one server SQL 6.5 to another SQL
> 2000. I want to have script to compare table related objects
> (index/PK/FK/constraint) for all the tables in the database to make
> sure nothing missing.
> Anyone can help?
I'm not familiar with SQL 6.5, but in SQL 2000 there are the
INFORMATION_SCHEMA views that can be used to obtain a list of tables,
constraints, etc. You could use this to check that everything's there.
John.|||sql6.x does not have info_ views yet. You will have to look at sysobjects
for the list of objects. If you want to compare definition, you will have to
check out syscomments.
-oj
"Julia" <Julia@.discussions.microsoft.com> wrote in message
news:34ACC6D7-4157-4324-9960-2F099809C4A3@.microsoft.com...
> Hi,
> I am migrating a database from one server SQL 6.5 to another SQL 2000. I
> want to have script to compare table related objects
> (index/PK/FK/constraint)
> for all the tables in the database to make sure nothing missing.
> Anyone can help?
>
>|||I thought that might be the case.
In which case (assuming the migration is straight over and the objects will
either exist and be correct, or be missing), sysobjects with an appropriate
filter on the xtype column sounds ideal - BOL has full documentation on this
column (e.g. a value of U for user table, F for foreign key etc.)
John.
oj wrote:[vbcol=seagreen]
> sql6.x does not have info_ views yet. You will have to look at
> sysobjects for the list of objects. If you want to compare
> definition, you will have to check out syscomments.
>
> "Julia" <Julia@.discussions.microsoft.com> wrote in message
> news:34ACC6D7-4157-4324-9960-2F099809C4A3@.microsoft.com...
compare table related objects
I am migrating a database from one server SQL 6.5 to another SQL 2000. I
want to have script to compare table related objects (index/PK/FK/constraint)
for all the tables in the database to make sure nothing missing.
Anyone can help?Julia wrote:
> Hi,
> I am migrating a database from one server SQL 6.5 to another SQL
> 2000. I want to have script to compare table related objects
> (index/PK/FK/constraint) for all the tables in the database to make
> sure nothing missing.
> Anyone can help?
I'm not familiar with SQL 6.5, but in SQL 2000 there are the
INFORMATION_SCHEMA views that can be used to obtain a list of tables,
constraints, etc. You could use this to check that everything's there.
John.|||sql6.x does not have info_ views yet. You will have to look at sysobjects
for the list of objects. If you want to compare definition, you will have to
check out syscomments.
--
-oj
"Julia" <Julia@.discussions.microsoft.com> wrote in message
news:34ACC6D7-4157-4324-9960-2F099809C4A3@.microsoft.com...
> Hi,
> I am migrating a database from one server SQL 6.5 to another SQL 2000. I
> want to have script to compare table related objects
> (index/PK/FK/constraint)
> for all the tables in the database to make sure nothing missing.
> Anyone can help?
>
>|||I thought that might be the case.
In which case (assuming the migration is straight over and the objects will
either exist and be correct, or be missing), sysobjects with an appropriate
filter on the xtype column sounds ideal - BOL has full documentation on this
column (e.g. a value of U for user table, F for foreign key etc.)
John.
oj wrote:
> sql6.x does not have info_ views yet. You will have to look at
> sysobjects for the list of objects. If you want to compare
> definition, you will have to check out syscomments.
>
> "Julia" <Julia@.discussions.microsoft.com> wrote in message
> news:34ACC6D7-4157-4324-9960-2F099809C4A3@.microsoft.com...
>> Hi,
>> I am migrating a database from one server SQL 6.5 to another SQL
>> 2000. I want to have script to compare table related objects
>> (index/PK/FK/constraint)
>> for all the tables in the database to make sure nothing missing.
>> Anyone can help?
Compare SQL objects
SQL objects? In my case for example I want to compare
two stored procedures on two different databases?
If there is no SP that does comparison, would there be
any code in SQL DMO that does this?
How does someone learn SQL DMO? Does SQL Server
2000 have by default DMO learning material or I have to
search for books?
Thank youHi
You can try scripting them using DMO and then doing a file compare on the
two files.
Other options are Redgate compare:
http://www.red-gate.com/sql/summary.htm
OR QALite:
http://www.rac4sql.net/qalite_main.asp
John
"serge" <sergea@.nospam.ehmail.com> wrote in message
news:AtHje.74139$JU3.1442129@.wagner.videotron.net. ..
> Is there a stored procedure to allow me to compare two
> SQL objects? In my case for example I want to compare
> two stored procedures on two different databases?
> If there is no SP that does comparison, would there be
> any code in SQL DMO that does this?
> How does someone learn SQL DMO? Does SQL Server
> 2000 have by default DMO learning material or I have to
> search for books?
>
> Thank you|||"serge" <sergea@.nospam.ehmail.com> wrote in message
news:AtHje.74139$JU3.1442129@.wagner.videotron.net. ..
> Is there a stored procedure to allow me to compare two
> SQL objects? In my case for example I want to compare
> two stored procedures on two different databases?
> If there is no SP that does comparison, would there be
> any code in SQL DMO that does this?
> How does someone learn SQL DMO? Does SQL Server
> 2000 have by default DMO learning material or I have to
> search for books?
>
> Thank you
As John suggested, you can use the DMO Script method and compare the output.
This should be fine for procs, but it can be a problem for tables, because
you may have constraints which have been assigned a name by the system - the
constraint definition is identical, but it will show up as a difference in
your diff. You may or may not regard this as a problem, but tools such as
the Red Gate one allow you to configure your comparison to take this into
account, as well as whether or not to compare indexes, if a comparison
should be case-sensitive etc.
As for learning SQL-DMO - Books Online and practice. If you're already
familiar with COM programming, that would be useful, but it's far from
essential. Unfortunately the Books Online documentation doesn't provide many
examples - it tends to describe the steps to follow for a certain task, but
doesn't also give an actual code sample. Even if you want to use SQL-DMO
from a compiled language like VB or C#, I suggest you consider also using a
language such as Perl or Python - it's usually much faster for quick tests
and ad hoc experiments.
Simon|||There is another software tool that compares and synchronises databases
called DB Ghost (www.dbghost.com)
and it does data as well as schema. It is also the foundation for a
SQL Server change management process that works in harmony with any
source control/configuration management system to provide a completely
scalable solution for any size development team that has to work on the
same schema at the same time.
I highly recommend you check it out.
Friday, February 24, 2012
Common Objects in SQL Server 2005
2005....that who appear in Query Analizer (SQL Server 2000)
Common Objects: Configuration Functions, Cursor Functions, Date and Time
Functions etc
Thanks a lot
Look up 'Functions' in Books Online.
Arnie Rowland, Ph.D.
Westwood Consulting, Inc
Most good judgment comes from experience.
Most experience comes from bad judgment.
- Anonymous
You can't help someone get up a hill without getting a little closer to the
top yourself.
- H. Norman Schwarzkopf
"Dio" <Dio@.discussions.microsoft.com> wrote in message
news:EC56348F-6637-4015-BFE1-17DE37A44B4D@.microsoft.com...
> Hi, please tell me where I can find Common Objects in SQL Server
> 2005....that who appear in Query Analizer (SQL Server 2000)
> Common Objects: Configuration Functions, Cursor Functions, Date and Time
> Functions etc
>
> Thanks a lot
>
|||Dio (Dio@.discussions.microsoft.com) writes:
> Hi, please tell me where I can find Common Objects in SQL Server
> 2005....that who appear in Query Analizer (SQL Server 2000)
> Common Objects: Configuration Functions, Cursor Functions, Date and Time
> Functions etc
Most of them are under Programmability->Functions->System functions.
Obviously things that are not system functions are not there.
Erland Sommarskog, SQL Server MVP, esquel@.sommarskog.se
Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/books.mspx
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodinfo/previousversions/books.mspx
Common Objects in Management Studio?
Server 2005 in place of SQL Query Analyzer that comes with SQL Server 2000.
In SQL Query Analyzer's Object Explorer there is a set of Common Objects
under all of the DataBase Objects. These were very handy for me when I would
forget the syntax for a certain Transact-SQL function. It is more convenient
than looking it up in Books Online.
I can't seem to find the equivalent of the Common Objects in SQL Server
Management Studio. Anyone know where they are?
Thanks,
- Chase
Chase (Chase@.discussions.microsoft.com) writes:
> In SQL Query Analyzer's Object Explorer there is a set of Common Objects
> under all of the DataBase Objects. These were very handy for me when I
> would forget the syntax for a certain Transact-SQL function. It is more
> convenient than looking it up in Books Online.
> I can't seem to find the equivalent of the Common Objects in SQL Server
> Management Studio. Anyone know where they are?
Welcome to Management Studio! You will find that there is a lot of
functionality in Query Analyzer and Enterprise Manager that was not
brought over to Mgmt Studio. No, please don't ask me why! All I can suggest
is go to http://lab.msdn.microsoft.com/ProductFeedback/ and post a
suggestion for it to come back.
(I will have to admit that this is a feature of Query Analyzer that I
was not aware of myself.)
Erland Sommarskog, SQL Server MVP, esquel@.sommarskog.se
Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/pro...ads/books.mspx
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodinf...ons/books.mspx
|||A lot of that functionality can be replaced by templates that you can add
yourself. Open Template Explorer and right-click on the top node, select New
> Template.
Also, if you are just looking for a quick syntax help, you should check
Dynamic Help window. To open it click Help > Dynamic Help menu option. Once
the window opens, you can dock it somewhere in the Management Studio shell.
As you type in an editor, you will see links to help topics that relate to
what you just typed, including syntax help for T-SQL.
Hope that helps.
Regards,
Maciek Sarnowicz
SQL Server SDE
This posting is provided "AS IS" with no warranties, and confers no rights
"Erland Sommarskog" <esquel@.sommarskog.se> wrote in message
news:Xns9741F0113F282Yazorman@.127.0.0.1...
> Chase (Chase@.discussions.microsoft.com) writes:
> Welcome to Management Studio! You will find that there is a lot of
> functionality in Query Analyzer and Enterprise Manager that was not
> brought over to Mgmt Studio. No, please don't ask me why! All I can
> suggest
> is go to http://lab.msdn.microsoft.com/ProductFeedback/ and post a
> suggestion for it to come back.
> (I will have to admit that this is a feature of Query Analyzer that I
> was not aware of myself.)
>
> --
> Erland Sommarskog, SQL Server MVP, esquel@.sommarskog.se
> Books Online for SQL Server 2005 at
> http://www.microsoft.com/technet/pro...ads/books.mspx
> Books Online for SQL Server 2000 at
> http://www.microsoft.com/sql/prodinf...ons/books.mspx