Sample Header Ad - 728x90

Database Administrators

Q&A for database professionals who wish to improve their database skills

Latest Questions

0 votes
2 answers
205 views
Do deprecated features matter when changing compatibility level?
On my SQL Server 2019 machine, I have a database that is running on the lowest supported compatibility level (I believe that's equivalent to SQL Server 2008). I want to switch it to the very highest. Do I need to check for deprecated features first? This feels like it should be a duplicate, but I've...
On my SQL Server 2019 machine, I have a database that is running on the lowest supported compatibility level (I believe that's equivalent to SQL Server 2008). I want to switch it to the very highest. Do I need to check for deprecated features first? This feels like it should be a duplicate, but I've not managed to find anything mentioning both topics.
J. Mini (1235 rep)
Feb 6, 2024, 08:52 PM • Last activity: Feb 8, 2024, 09:15 AM
3 votes
1 answers
2716 views
List of deprecated features for PostgreSQL 8 to 13
I'm going to upgrade several PostgreSQL 8 databases to version 13. The people I work for come from SQL Server. I've been looking for a tool similar to "DMA", specifically the part that lists deprecated features and "breaking changes". They want a report to estimate times. They love reports. Docx's a...
I'm going to upgrade several PostgreSQL 8 databases to version 13. The people I work for come from SQL Server. I've been looking for a tool similar to "DMA", specifically the part that lists deprecated features and "breaking changes". They want a report to estimate times. They love reports. Docx's and xlsx's everywhere.
Jesús Reyes Landeros (33 rep)
Oct 29, 2021, 06:37 PM • Last activity: Nov 2, 2021, 05:28 AM
3 votes
2 answers
5785 views
MySQL 8 - user variables within expressions is deprecated [UDF calls with lot of parameters]
I have this: SELECT @foo1 := UDF1(0, a, b, c, d) AS Foo1, @foo2 := UDF1(1, a, b, c, d) AS Foo2, @foo3 := UDF1(2, a, b, c, d) AS Foo3, @foo4 := UDF1(3, a, b, c, d) AS Foo4, @foo5 := UDF2( @foo1, @foo2, @foo3, @foo4) AS Foo5, @foo6 := UDF3( @foo1, @foo2, @foo3, @foo4) AS Foo6, @foo8 := UDF4( @foo5, @f...
I have this: SELECT @foo1 := UDF1(0, a, b, c, d) AS Foo1, @foo2 := UDF1(1, a, b, c, d) AS Foo2, @foo3 := UDF1(2, a, b, c, d) AS Foo3, @foo4 := UDF1(3, a, b, c, d) AS Foo4, @foo5 := UDF2( @foo1, @foo2, @foo3, @foo4) AS Foo5, @foo6 := UDF3( @foo1, @foo2, @foo3, @foo4) AS Foo6, @foo8 := UDF4( @foo5, @foo7, x, y, z) AS Foo8 FROM MyTable; As you can see it's quite complicated and a, b, c, d, x, y and z are field names which are quite long [The names express their *functionality*]. I receive now this error message on MySQL 8.0.20: > X Setting user variables within expressions is deprecated and will be > removed in a future release. Consider alternatives: 'SET > variable=expression, ...', or 'SELECT expression(s) INTO > variables(s)'. OK, this is the wrong place to discuss if it makes sense that @var := value is deprecated, so I have to move on and I want to assure that the program doesn't stop working if the next MySQL update is installed. I could solve it like this: SELECT UDF1(0, a, b, c, d) AS Foo1, UDF1(1, a, b, c, d) AS Foo2, UDF1(2, a, b, c, d) AS Foo3, UDF1(3, a, b, c, d) AS Foo4, UDF2(UDF1(0, a, b, c, d), UDF1(1, a, b, c, d), UDF1(2, a, b, c, d), UDF1(3, a, b, c, d)) AS Foo5, UDF3(UDF1(0, a, b, c, d), UDF1(1, a, b, c, d), UDF1(2, a, b, c, d), UDF1(3, a, b, c, d) ) AS Foo5, UDF3(UDF2(UDF1(0, a, b, c, d) , UDF1(1, a, b, c, d) , UDF1(2, a, b, c, d) , UDF1(3, a, b, c, d) ) , UDF3(UDF1(0, a, b, c, d), UDF1(1, a, b, c, d), UDF1(2, a, b, c, d), UDF1(3, a, b, c, d) ), x, y, z) AS Foo6 FROM MyTable; Honestly, doesn't this hurt and, what I find worst, it becomes so unreadable and changing any call I have to maintain many times --> buggy. Also, in the current version the length of the SELECT grows from 2'334 bytes to 3'504 bytes. ---------- I am trying to work with a temporary table but to fill the table is a quite long and [useless] complicated SELECT using LEFT JOIN as @foo5 depends on @foo1-4 and @foo6 depends on @foo5. This works, but I am wondering if there may be another solution I am not capable to see. The suggested SELECT expression(s) INTO variables(s) I don't understand how this should help in my case. As I wrote in the beginning, I don't understand why this feature is deprecated as it apparently can solve lot of troubles and makes complicated SELECT statements simpler... Any suggestions?
Peter VARGA (779 rep)
May 29, 2020, 05:53 PM • Last activity: May 30, 2020, 11:39 AM
0 votes
3 answers
811 views
Deprecated raiserror detection
I want to upgrade SQL server from 2008 to 2014 versiyon. I checked all of the deprecated features including raiserror syntax. But I have many stored procedures to check. Some of them use new syntax, some of them use old syntax and I need to alter the old syntax from them. How can I check all of the...
I want to upgrade SQL server from 2008 to 2014 versiyon. I checked all of the deprecated features including raiserror syntax. But I have many stored procedures to check. Some of them use new syntax, some of them use old syntax and I need to alter the old syntax from them. How can I check all of the procedures to detect old raiserror syntax?
Banu Akkus (389 rep)
Feb 13, 2019, 06:35 AM • Last activity: Feb 13, 2019, 12:38 PM
5 votes
3 answers
7624 views
Is findOne() in mongoDB deprecated
Is `findOne()` in **MongoDB** deprecated? I am asking this because when I use `findOne()` in *WebStorm* the IDE puts a line through `findOne()` and gives a message saying `findOne()` is deprecated and to find substitute. I looked in the [MongoDB documentation][1] to try and find an answer but it did...
Is findOne() in **MongoDB** deprecated? I am asking this because when I use findOne() in *WebStorm* the IDE puts a line through findOne() and gives a message saying findOne() is deprecated and to find substitute. I looked in the MongoDB documentation to try and find an answer but it did not mention anything about findOne() being deprecated. If findOne() is deprecated what would be the best alternative to this method? If it is not deprecated does anyone know why WebStorm gives this warning? Any help with this is appreciated! Thanks!
Tim (153 rep)
May 23, 2016, 08:07 PM • Last activity: Dec 5, 2016, 06:24 PM
2 votes
2 answers
733 views
SQL Server 2016 deprecation of DML keyword ROWGUIDCOL
I just found out that the DML keyword `ROWGUIDCOL` is deprecated, replacement is `$rowguid`; and that DML `IDENTITYCOL` keyword is deprecated, new name is `$identity`. I don't understand why a non-variable (no dollar sign symbol) DML can be replaced with what is essentially an alias, which if I unde...
I just found out that the DML keyword ROWGUIDCOL is deprecated, replacement is $rowguid; and that DML IDENTITYCOL keyword is deprecated, new name is $identity. I don't understand why a non-variable (no dollar sign symbol) DML can be replaced with what is essentially an alias, which if I understand it, will sometimes evaluate back to ROWGUIDCOL and sometimes to something else?. Can anyone explain what is going on here? What does this deprecation mean? In AdventureWorks sample, for example, I don't think it means I should do this: CREATE TABLE [Sales].[Customer] ( [CustomerID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, ... [rowguid] [uniqueidentifier] $rowguid NOT NULL, ... ); GO The above doesn't work obviously. So what is it saying is deprecated? Clearly not the keyword ROWGUIDCOL above? I thought when something is deprecated that a new syntax must already exist and this would give me time to transition to a form that won't break in "SQL 2017+". Origin: Deprecated Database Engine Features in SQL Server 2016
Warren P (1087 rep)
Apr 5, 2016, 04:55 PM • Last activity: Apr 5, 2016, 05:34 PM
Showing page 1 of 6 total questions