Best practices to maximize portability in SQL Server 2016





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







8















When it comes to developing the prototype of a solution, often the technologies has not been decided yet and might not be the same that will be used in the finished product.



In this scenarios I tend to use Microsoft SQL Server writing the queries as standard as possible to simplify the eventual migration to another server.



Is there a way or some known practice to enforce the use of standard SQL over T-SQL dialect directly in SQL Server or via SQL Server Management Studio (SSMS)?










share|improve this question




















  • 3





    Portability is a nice textbook goal, but it rarely happens in practice. When you have a choice between standard syntax (<>) and non-standard (!=), where there is no compromise on performance or maintainability, I always choose standard. But when it comes at other costs, or there is no standard equivalent I tap out and go proprietary. The things you give up just for the ability to later completely switch platforms wholesale just aren’t worth it imho.

    – Aaron Bertrand
    Dec 28 '18 at 15:12






  • 6





    The only time portability is a realistic goal is when you’re writing an app that needs to integrate with multiple platforms simultaneously because your customers use different platforms. Even then, unless you want functionality to be limited and performance to be terrible on all platforms, I would ship packages meant to take advantage of features of individual platforms.

    – Aaron Bertrand
    Dec 28 '18 at 15:14






  • 1





    Just curious; in the history of ever, have you personally changed out the database system an app was using for another one of equivalent grade (e.g. Oracle -> SQLS)? I haven't

    – Caius Jard
    Dec 29 '18 at 17:32








  • 2





    The other thing I was curious about; how much of your prototype reasonably survives to be a full production grade system? Most of my prototypes share nearly no aspects with the full systems that are written out of them after the proto has proven a concept and sounded out some sensible approaches to how a solution should look; are you making your prototypes too perfect/hanging on to them too long?

    – Caius Jard
    Dec 29 '18 at 17:38


















8















When it comes to developing the prototype of a solution, often the technologies has not been decided yet and might not be the same that will be used in the finished product.



In this scenarios I tend to use Microsoft SQL Server writing the queries as standard as possible to simplify the eventual migration to another server.



Is there a way or some known practice to enforce the use of standard SQL over T-SQL dialect directly in SQL Server or via SQL Server Management Studio (SSMS)?










share|improve this question




















  • 3





    Portability is a nice textbook goal, but it rarely happens in practice. When you have a choice between standard syntax (<>) and non-standard (!=), where there is no compromise on performance or maintainability, I always choose standard. But when it comes at other costs, or there is no standard equivalent I tap out and go proprietary. The things you give up just for the ability to later completely switch platforms wholesale just aren’t worth it imho.

    – Aaron Bertrand
    Dec 28 '18 at 15:12






  • 6





    The only time portability is a realistic goal is when you’re writing an app that needs to integrate with multiple platforms simultaneously because your customers use different platforms. Even then, unless you want functionality to be limited and performance to be terrible on all platforms, I would ship packages meant to take advantage of features of individual platforms.

    – Aaron Bertrand
    Dec 28 '18 at 15:14






  • 1





    Just curious; in the history of ever, have you personally changed out the database system an app was using for another one of equivalent grade (e.g. Oracle -> SQLS)? I haven't

    – Caius Jard
    Dec 29 '18 at 17:32








  • 2





    The other thing I was curious about; how much of your prototype reasonably survives to be a full production grade system? Most of my prototypes share nearly no aspects with the full systems that are written out of them after the proto has proven a concept and sounded out some sensible approaches to how a solution should look; are you making your prototypes too perfect/hanging on to them too long?

    – Caius Jard
    Dec 29 '18 at 17:38














8












8








8


2






When it comes to developing the prototype of a solution, often the technologies has not been decided yet and might not be the same that will be used in the finished product.



In this scenarios I tend to use Microsoft SQL Server writing the queries as standard as possible to simplify the eventual migration to another server.



Is there a way or some known practice to enforce the use of standard SQL over T-SQL dialect directly in SQL Server or via SQL Server Management Studio (SSMS)?










share|improve this question
















When it comes to developing the prototype of a solution, often the technologies has not been decided yet and might not be the same that will be used in the finished product.



In this scenarios I tend to use Microsoft SQL Server writing the queries as standard as possible to simplify the eventual migration to another server.



Is there a way or some known practice to enforce the use of standard SQL over T-SQL dialect directly in SQL Server or via SQL Server Management Studio (SSMS)?







sql-server sql-server-2016 migration sql-standard






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Dec 28 '18 at 17:19









Josh Darnell

8,22922243




8,22922243










asked Dec 28 '18 at 14:07









s.demuros.demuro

473




473








  • 3





    Portability is a nice textbook goal, but it rarely happens in practice. When you have a choice between standard syntax (<>) and non-standard (!=), where there is no compromise on performance or maintainability, I always choose standard. But when it comes at other costs, or there is no standard equivalent I tap out and go proprietary. The things you give up just for the ability to later completely switch platforms wholesale just aren’t worth it imho.

    – Aaron Bertrand
    Dec 28 '18 at 15:12






  • 6





    The only time portability is a realistic goal is when you’re writing an app that needs to integrate with multiple platforms simultaneously because your customers use different platforms. Even then, unless you want functionality to be limited and performance to be terrible on all platforms, I would ship packages meant to take advantage of features of individual platforms.

    – Aaron Bertrand
    Dec 28 '18 at 15:14






  • 1





    Just curious; in the history of ever, have you personally changed out the database system an app was using for another one of equivalent grade (e.g. Oracle -> SQLS)? I haven't

    – Caius Jard
    Dec 29 '18 at 17:32








  • 2





    The other thing I was curious about; how much of your prototype reasonably survives to be a full production grade system? Most of my prototypes share nearly no aspects with the full systems that are written out of them after the proto has proven a concept and sounded out some sensible approaches to how a solution should look; are you making your prototypes too perfect/hanging on to them too long?

    – Caius Jard
    Dec 29 '18 at 17:38














  • 3





    Portability is a nice textbook goal, but it rarely happens in practice. When you have a choice between standard syntax (<>) and non-standard (!=), where there is no compromise on performance or maintainability, I always choose standard. But when it comes at other costs, or there is no standard equivalent I tap out and go proprietary. The things you give up just for the ability to later completely switch platforms wholesale just aren’t worth it imho.

    – Aaron Bertrand
    Dec 28 '18 at 15:12






  • 6





    The only time portability is a realistic goal is when you’re writing an app that needs to integrate with multiple platforms simultaneously because your customers use different platforms. Even then, unless you want functionality to be limited and performance to be terrible on all platforms, I would ship packages meant to take advantage of features of individual platforms.

    – Aaron Bertrand
    Dec 28 '18 at 15:14






  • 1





    Just curious; in the history of ever, have you personally changed out the database system an app was using for another one of equivalent grade (e.g. Oracle -> SQLS)? I haven't

    – Caius Jard
    Dec 29 '18 at 17:32








  • 2





    The other thing I was curious about; how much of your prototype reasonably survives to be a full production grade system? Most of my prototypes share nearly no aspects with the full systems that are written out of them after the proto has proven a concept and sounded out some sensible approaches to how a solution should look; are you making your prototypes too perfect/hanging on to them too long?

    – Caius Jard
    Dec 29 '18 at 17:38








3




3





Portability is a nice textbook goal, but it rarely happens in practice. When you have a choice between standard syntax (<>) and non-standard (!=), where there is no compromise on performance or maintainability, I always choose standard. But when it comes at other costs, or there is no standard equivalent I tap out and go proprietary. The things you give up just for the ability to later completely switch platforms wholesale just aren’t worth it imho.

– Aaron Bertrand
Dec 28 '18 at 15:12





Portability is a nice textbook goal, but it rarely happens in practice. When you have a choice between standard syntax (<>) and non-standard (!=), where there is no compromise on performance or maintainability, I always choose standard. But when it comes at other costs, or there is no standard equivalent I tap out and go proprietary. The things you give up just for the ability to later completely switch platforms wholesale just aren’t worth it imho.

– Aaron Bertrand
Dec 28 '18 at 15:12




6




6





The only time portability is a realistic goal is when you’re writing an app that needs to integrate with multiple platforms simultaneously because your customers use different platforms. Even then, unless you want functionality to be limited and performance to be terrible on all platforms, I would ship packages meant to take advantage of features of individual platforms.

– Aaron Bertrand
Dec 28 '18 at 15:14





The only time portability is a realistic goal is when you’re writing an app that needs to integrate with multiple platforms simultaneously because your customers use different platforms. Even then, unless you want functionality to be limited and performance to be terrible on all platforms, I would ship packages meant to take advantage of features of individual platforms.

– Aaron Bertrand
Dec 28 '18 at 15:14




1




1





Just curious; in the history of ever, have you personally changed out the database system an app was using for another one of equivalent grade (e.g. Oracle -> SQLS)? I haven't

– Caius Jard
Dec 29 '18 at 17:32







Just curious; in the history of ever, have you personally changed out the database system an app was using for another one of equivalent grade (e.g. Oracle -> SQLS)? I haven't

– Caius Jard
Dec 29 '18 at 17:32






2




2





The other thing I was curious about; how much of your prototype reasonably survives to be a full production grade system? Most of my prototypes share nearly no aspects with the full systems that are written out of them after the proto has proven a concept and sounded out some sensible approaches to how a solution should look; are you making your prototypes too perfect/hanging on to them too long?

– Caius Jard
Dec 29 '18 at 17:38





The other thing I was curious about; how much of your prototype reasonably survives to be a full production grade system? Most of my prototypes share nearly no aspects with the full systems that are written out of them after the proto has proven a concept and sounded out some sensible approaches to how a solution should look; are you making your prototypes too perfect/hanging on to them too long?

– Caius Jard
Dec 29 '18 at 17:38










4 Answers
4






active

oldest

votes


















16














User Aaron Bertrand made some comments that align well with my thoughts on your question. This is more of a frame challenge than an answer to your specific question, but I think it's valuable to consider in this context.




Portability is a nice textbook goal, but it rarely happens in practice.




If you have to change platforms at some point, there will be changes needed to the application, the database, and probably many other things. If you can be somewhat "platform agnostic" without too much effort, that's fine. But it's really a bad business decision to use that as a design goal.



There are many places online where people discuss the downsides or programming this way, here's one of them that I find pretty compelling:



Database Abstraction Layers Must Die!




The Portability Fallacy



The author uses an argument I hear all the time: If you use a good abstraction layer, it'll be easy to move from $this_database to $other_database down the road.



That's bullshit. It's never easy.



In any non-trivial database backed application, nobody thinks of switching databases as an easy matter. Thinking that "the conversion will be painless" is a fantasy.



Good engineers try to select the best tools for the job and then do everything they can to take advantage of their tool's unique and most powerful features. In the database world, that means specific hints, indexing, data types, and even table structure decisions. If you truly limit yourself to the subset of features that is common across all major RDBMSes, you're doing yourself and your clients a huge disservice.



That's no different from saying "I'm doing to limit myself to the subset of PHP that's the same in Perl and C, because I might want to switch languages one day and 'painlessly' port my code."



That just doesn't happen.



The cost of switching databases after an application is developed and deployed is quite high. You have possible schema and index changes, syntax changes, optimization and tuning work to re-do, hints to adjust or remove, and so on. Changing mysql_foo() to oracle_foo() is really the least of your problems. You're gonna touch most, if not all, of your SQL--or you'll at least need to verify it.



That doesn't sound "painless" to me.







share|improve this answer































    11














    Do not enforce STD SQL.



    Decide first which DBMS you will use according to the needs of your project, and take advantage of it.






    share|improve this answer

































      9














      Not really.



      There is SET FIPS_FLAGGER 'FULL'.



      This prints out a warning for non standard SQL - but some caveats are




      • I am unsure what specific standard this uses (and suspect it may be SQL 92)

      • From a quick test this doesn't complain about use of the + operator for string concatenation or proprietary functions such as GETDATE() so it doesn't seem very comprehensive.






      share|improve this answer

































        3














        "often the technologies has not been decided yet"



        I would say this is absolutely NOT the case in my experience. In fact I don't believe I've ever heard of this except for perhaps something very small.



        Usually this is established, and the new solution is expected to utilize what is already in use.



        I would agree with the commenters above in that even if it's not established, you need to establish that first before you start writing queries and other code. Otherwise you're just potentially letting yourself in for a lot of wasted effort in a re-write right off the bat.






        share|improve this answer
























          Your Answer








          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "182"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f225918%2fbest-practices-to-maximize-portability-in-sql-server-2016%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          4 Answers
          4






          active

          oldest

          votes








          4 Answers
          4






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          16














          User Aaron Bertrand made some comments that align well with my thoughts on your question. This is more of a frame challenge than an answer to your specific question, but I think it's valuable to consider in this context.




          Portability is a nice textbook goal, but it rarely happens in practice.




          If you have to change platforms at some point, there will be changes needed to the application, the database, and probably many other things. If you can be somewhat "platform agnostic" without too much effort, that's fine. But it's really a bad business decision to use that as a design goal.



          There are many places online where people discuss the downsides or programming this way, here's one of them that I find pretty compelling:



          Database Abstraction Layers Must Die!




          The Portability Fallacy



          The author uses an argument I hear all the time: If you use a good abstraction layer, it'll be easy to move from $this_database to $other_database down the road.



          That's bullshit. It's never easy.



          In any non-trivial database backed application, nobody thinks of switching databases as an easy matter. Thinking that "the conversion will be painless" is a fantasy.



          Good engineers try to select the best tools for the job and then do everything they can to take advantage of their tool's unique and most powerful features. In the database world, that means specific hints, indexing, data types, and even table structure decisions. If you truly limit yourself to the subset of features that is common across all major RDBMSes, you're doing yourself and your clients a huge disservice.



          That's no different from saying "I'm doing to limit myself to the subset of PHP that's the same in Perl and C, because I might want to switch languages one day and 'painlessly' port my code."



          That just doesn't happen.



          The cost of switching databases after an application is developed and deployed is quite high. You have possible schema and index changes, syntax changes, optimization and tuning work to re-do, hints to adjust or remove, and so on. Changing mysql_foo() to oracle_foo() is really the least of your problems. You're gonna touch most, if not all, of your SQL--or you'll at least need to verify it.



          That doesn't sound "painless" to me.







          share|improve this answer




























            16














            User Aaron Bertrand made some comments that align well with my thoughts on your question. This is more of a frame challenge than an answer to your specific question, but I think it's valuable to consider in this context.




            Portability is a nice textbook goal, but it rarely happens in practice.




            If you have to change platforms at some point, there will be changes needed to the application, the database, and probably many other things. If you can be somewhat "platform agnostic" without too much effort, that's fine. But it's really a bad business decision to use that as a design goal.



            There are many places online where people discuss the downsides or programming this way, here's one of them that I find pretty compelling:



            Database Abstraction Layers Must Die!




            The Portability Fallacy



            The author uses an argument I hear all the time: If you use a good abstraction layer, it'll be easy to move from $this_database to $other_database down the road.



            That's bullshit. It's never easy.



            In any non-trivial database backed application, nobody thinks of switching databases as an easy matter. Thinking that "the conversion will be painless" is a fantasy.



            Good engineers try to select the best tools for the job and then do everything they can to take advantage of their tool's unique and most powerful features. In the database world, that means specific hints, indexing, data types, and even table structure decisions. If you truly limit yourself to the subset of features that is common across all major RDBMSes, you're doing yourself and your clients a huge disservice.



            That's no different from saying "I'm doing to limit myself to the subset of PHP that's the same in Perl and C, because I might want to switch languages one day and 'painlessly' port my code."



            That just doesn't happen.



            The cost of switching databases after an application is developed and deployed is quite high. You have possible schema and index changes, syntax changes, optimization and tuning work to re-do, hints to adjust or remove, and so on. Changing mysql_foo() to oracle_foo() is really the least of your problems. You're gonna touch most, if not all, of your SQL--or you'll at least need to verify it.



            That doesn't sound "painless" to me.







            share|improve this answer


























              16












              16








              16







              User Aaron Bertrand made some comments that align well with my thoughts on your question. This is more of a frame challenge than an answer to your specific question, but I think it's valuable to consider in this context.




              Portability is a nice textbook goal, but it rarely happens in practice.




              If you have to change platforms at some point, there will be changes needed to the application, the database, and probably many other things. If you can be somewhat "platform agnostic" without too much effort, that's fine. But it's really a bad business decision to use that as a design goal.



              There are many places online where people discuss the downsides or programming this way, here's one of them that I find pretty compelling:



              Database Abstraction Layers Must Die!




              The Portability Fallacy



              The author uses an argument I hear all the time: If you use a good abstraction layer, it'll be easy to move from $this_database to $other_database down the road.



              That's bullshit. It's never easy.



              In any non-trivial database backed application, nobody thinks of switching databases as an easy matter. Thinking that "the conversion will be painless" is a fantasy.



              Good engineers try to select the best tools for the job and then do everything they can to take advantage of their tool's unique and most powerful features. In the database world, that means specific hints, indexing, data types, and even table structure decisions. If you truly limit yourself to the subset of features that is common across all major RDBMSes, you're doing yourself and your clients a huge disservice.



              That's no different from saying "I'm doing to limit myself to the subset of PHP that's the same in Perl and C, because I might want to switch languages one day and 'painlessly' port my code."



              That just doesn't happen.



              The cost of switching databases after an application is developed and deployed is quite high. You have possible schema and index changes, syntax changes, optimization and tuning work to re-do, hints to adjust or remove, and so on. Changing mysql_foo() to oracle_foo() is really the least of your problems. You're gonna touch most, if not all, of your SQL--or you'll at least need to verify it.



              That doesn't sound "painless" to me.







              share|improve this answer













              User Aaron Bertrand made some comments that align well with my thoughts on your question. This is more of a frame challenge than an answer to your specific question, but I think it's valuable to consider in this context.




              Portability is a nice textbook goal, but it rarely happens in practice.




              If you have to change platforms at some point, there will be changes needed to the application, the database, and probably many other things. If you can be somewhat "platform agnostic" without too much effort, that's fine. But it's really a bad business decision to use that as a design goal.



              There are many places online where people discuss the downsides or programming this way, here's one of them that I find pretty compelling:



              Database Abstraction Layers Must Die!




              The Portability Fallacy



              The author uses an argument I hear all the time: If you use a good abstraction layer, it'll be easy to move from $this_database to $other_database down the road.



              That's bullshit. It's never easy.



              In any non-trivial database backed application, nobody thinks of switching databases as an easy matter. Thinking that "the conversion will be painless" is a fantasy.



              Good engineers try to select the best tools for the job and then do everything they can to take advantage of their tool's unique and most powerful features. In the database world, that means specific hints, indexing, data types, and even table structure decisions. If you truly limit yourself to the subset of features that is common across all major RDBMSes, you're doing yourself and your clients a huge disservice.



              That's no different from saying "I'm doing to limit myself to the subset of PHP that's the same in Perl and C, because I might want to switch languages one day and 'painlessly' port my code."



              That just doesn't happen.



              The cost of switching databases after an application is developed and deployed is quite high. You have possible schema and index changes, syntax changes, optimization and tuning work to re-do, hints to adjust or remove, and so on. Changing mysql_foo() to oracle_foo() is really the least of your problems. You're gonna touch most, if not all, of your SQL--or you'll at least need to verify it.



              That doesn't sound "painless" to me.








              share|improve this answer












              share|improve this answer



              share|improve this answer










              answered Dec 28 '18 at 17:28









              Josh DarnellJosh Darnell

              8,22922243




              8,22922243

























                  11














                  Do not enforce STD SQL.



                  Decide first which DBMS you will use according to the needs of your project, and take advantage of it.






                  share|improve this answer






























                    11














                    Do not enforce STD SQL.



                    Decide first which DBMS you will use according to the needs of your project, and take advantage of it.






                    share|improve this answer




























                      11












                      11








                      11







                      Do not enforce STD SQL.



                      Decide first which DBMS you will use according to the needs of your project, and take advantage of it.






                      share|improve this answer















                      Do not enforce STD SQL.



                      Decide first which DBMS you will use according to the needs of your project, and take advantage of it.







                      share|improve this answer














                      share|improve this answer



                      share|improve this answer








                      edited Dec 28 '18 at 15:09

























                      answered Dec 28 '18 at 14:32









                      McNetsMcNets

                      16.4k42261




                      16.4k42261























                          9














                          Not really.



                          There is SET FIPS_FLAGGER 'FULL'.



                          This prints out a warning for non standard SQL - but some caveats are




                          • I am unsure what specific standard this uses (and suspect it may be SQL 92)

                          • From a quick test this doesn't complain about use of the + operator for string concatenation or proprietary functions such as GETDATE() so it doesn't seem very comprehensive.






                          share|improve this answer






























                            9














                            Not really.



                            There is SET FIPS_FLAGGER 'FULL'.



                            This prints out a warning for non standard SQL - but some caveats are




                            • I am unsure what specific standard this uses (and suspect it may be SQL 92)

                            • From a quick test this doesn't complain about use of the + operator for string concatenation or proprietary functions such as GETDATE() so it doesn't seem very comprehensive.






                            share|improve this answer




























                              9












                              9








                              9







                              Not really.



                              There is SET FIPS_FLAGGER 'FULL'.



                              This prints out a warning for non standard SQL - but some caveats are




                              • I am unsure what specific standard this uses (and suspect it may be SQL 92)

                              • From a quick test this doesn't complain about use of the + operator for string concatenation or proprietary functions such as GETDATE() so it doesn't seem very comprehensive.






                              share|improve this answer















                              Not really.



                              There is SET FIPS_FLAGGER 'FULL'.



                              This prints out a warning for non standard SQL - but some caveats are




                              • I am unsure what specific standard this uses (and suspect it may be SQL 92)

                              • From a quick test this doesn't complain about use of the + operator for string concatenation or proprietary functions such as GETDATE() so it doesn't seem very comprehensive.







                              share|improve this answer














                              share|improve this answer



                              share|improve this answer








                              edited Dec 28 '18 at 14:25

























                              answered Dec 28 '18 at 14:17









                              Martin SmithMartin Smith

                              64.3k10173259




                              64.3k10173259























                                  3














                                  "often the technologies has not been decided yet"



                                  I would say this is absolutely NOT the case in my experience. In fact I don't believe I've ever heard of this except for perhaps something very small.



                                  Usually this is established, and the new solution is expected to utilize what is already in use.



                                  I would agree with the commenters above in that even if it's not established, you need to establish that first before you start writing queries and other code. Otherwise you're just potentially letting yourself in for a lot of wasted effort in a re-write right off the bat.






                                  share|improve this answer




























                                    3














                                    "often the technologies has not been decided yet"



                                    I would say this is absolutely NOT the case in my experience. In fact I don't believe I've ever heard of this except for perhaps something very small.



                                    Usually this is established, and the new solution is expected to utilize what is already in use.



                                    I would agree with the commenters above in that even if it's not established, you need to establish that first before you start writing queries and other code. Otherwise you're just potentially letting yourself in for a lot of wasted effort in a re-write right off the bat.






                                    share|improve this answer


























                                      3












                                      3








                                      3







                                      "often the technologies has not been decided yet"



                                      I would say this is absolutely NOT the case in my experience. In fact I don't believe I've ever heard of this except for perhaps something very small.



                                      Usually this is established, and the new solution is expected to utilize what is already in use.



                                      I would agree with the commenters above in that even if it's not established, you need to establish that first before you start writing queries and other code. Otherwise you're just potentially letting yourself in for a lot of wasted effort in a re-write right off the bat.






                                      share|improve this answer













                                      "often the technologies has not been decided yet"



                                      I would say this is absolutely NOT the case in my experience. In fact I don't believe I've ever heard of this except for perhaps something very small.



                                      Usually this is established, and the new solution is expected to utilize what is already in use.



                                      I would agree with the commenters above in that even if it's not established, you need to establish that first before you start writing queries and other code. Otherwise you're just potentially letting yourself in for a lot of wasted effort in a re-write right off the bat.







                                      share|improve this answer












                                      share|improve this answer



                                      share|improve this answer










                                      answered Dec 28 '18 at 22:35









                                      Marbry HardinMarbry Hardin

                                      911




                                      911






























                                          draft saved

                                          draft discarded




















































                                          Thanks for contributing an answer to Database Administrators Stack Exchange!


                                          • Please be sure to answer the question. Provide details and share your research!

                                          But avoid



                                          • Asking for help, clarification, or responding to other answers.

                                          • Making statements based on opinion; back them up with references or personal experience.


                                          To learn more, see our tips on writing great answers.




                                          draft saved


                                          draft discarded














                                          StackExchange.ready(
                                          function () {
                                          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f225918%2fbest-practices-to-maximize-portability-in-sql-server-2016%23new-answer', 'question_page');
                                          }
                                          );

                                          Post as a guest















                                          Required, but never shown





















































                                          Required, but never shown














                                          Required, but never shown












                                          Required, but never shown







                                          Required, but never shown

































                                          Required, but never shown














                                          Required, but never shown












                                          Required, but never shown







                                          Required, but never shown







                                          Popular posts from this blog

                                          Le Mesnil-Réaume

                                          Ida-Boy-Ed-Garten

                                          web3.py web3.isConnected() returns false always