7

The limitation is mentioned in the Query Processing Architecture Guide under the "Parallel Query Processing" section: Parallel plans not supported for Desktop and Express edition. The Editions and supported features of SQL Server 2019 (15.x) documentation says (under "Scale Limits") that Express is: Limited to lesser of 1 socket or 4 ...


5

They seem logically equivalent. They are. Even with ANSI_NULLS OFF "a SELECT statement that uses WHERE column_name <> XYZ_value returns all rows that are not XYZ_value and that are not NULL." I found an old feedback item for this here, you can go vote for it.


5

No. Unless you need the space for something else it is not a problem at all. The unused space won't cause any extra CPU or memory use, empty pages won't consume space in backups, etc... As data grows in future it will use the empty allocated space instead of requesting more from the filesystem. I'm fact shrinking can cause issues such as extra fragmentation, ...


2

select id from table where field in (gigantic list of ordered longs) Queries wit long IN lists are slow, as they are parsed and compiled each call. Either pass the list as a JSON array: select id from table where field in (select value from openjson(@values)) Or use a Table-Valued parameter or bulk load a temp table with the values.


2

You can use only columns from the joined tables or in your case concatenated version of it SELECT first_name, last_name, address_1_zip, CONCAT_WS(',', last_name,first_name) AS CombinedName FROM CPSQL.dbo.legal_entity AS LE INNER JOIN CPSQL.dbo.cases as C ON CONCAT_WS(', ', LE.last_name,LE.first_name)=C.style WHERE C.create_date >= Convert(...


2

I think the way forward is via a dacpac & fortunately for you the dbatools powershell library automates most of the process - check out the blog post.


1

A "query" one or more "plans", linked by sys.query_store_plan. Each "plan" has multiple rows in sys.query_store_runtime_stats. If you turn on Profiler while running the built-in Query Store reports you can see lots of examples. EG exec sp_executesql N'SELECT TOP (@results_row_count) p.query_id query_id, q.object_id ...


1

GRANT IMPERSONATE ON LOGIN::admin to notadmin is telling SQL Server that you want to give the IMPERSONATE permission to the notadmin account so that it can IMPERSONATE other users. It sounds like your goal is the opposite, that you want to impersonate the notadmin account from the admin account. You already are accomplishing this when you run the SQL code ...


1

No, is not possible to downgrade a database. You have to automate the export/import of the data as you saw on that article through PowerShell or Python but there are no tools that allow you to do that. Not in bulk, not from a GUI or command line. So write your own command line utility because we live in an imperfect World.


Only top voted, non community-wiki answers of a minimum length are eligible