I have a remote SQL Server that I can connect to using a local instance of SSMS.
When raising errors, we use
RAISERROR( 'This works', 16, -1 )
Remotely, this works fine if it's all uppercase, or even if any one letter is uppercase.
raiserRor( 'Still works', 16, -1 )
If I try to run it using all lowercase though, it does not work
raiserror( 'Error', 16, -1 )
It returns the error message
Msg 121, Level 20, State 0, Line 3
A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The semaphore timeout period has expired.)
Even if I comment out the lowercase raiserror statement it still fails with the same error message.
If I log on to the server and execute these statements, they all work. It only seems to be when I connect remotely that this is an issue.
Why can't RAISERROR
be completely lowercase? Even if commented?
The server is an install of SQL Server 2012 Developer edition on Windows Server 2012.
Microsoft SQL Server 2012 - 11.0.5058.0 (X64)
May 14 2014 18:34:29
Copyright (c) Microsoft Corporation Developer Edition (64-bit) on Windows NT 6.2 (Build 9200: ) (Hypervisor)
I've used local installs of SQL Server Management Studio 2012 and 2014 and tested against databases with 2005 and 2012 compatibility levels and the same behavior occurs.
I tested on other machines and the same results occurred. I don't currently have a machine to test outside of our companies network though.
@@version
for your remote server, whether it's Azure or on Amazon or in your data center, version in Help > About for SSMS, and whether you can reproduce this on any other local machine connecting to the remote server.