Teradata : How to get the server name using query

不羁的心 提交于 2020-01-14 13:33:48

问题


How can I get the server name using query in Teradata? That is, if I am writing a query on the 'dev' server, it should return the dev server name.

for example, in Sybase : we will be using select @@servername.


回答1:


There's nothing like @@servername in TD. You might create a SQL UDF on each server returning the name, e.g.

REPLACE FUNCTION syslib.#servername ()
RETURNS VARCHAR(30)
LANGUAGE SQL
CONTAINS SQL
DETERMINISTIC
RETURNS NULL ON NULL INPUT
SQL SECURITY DEFINER
COLLATION INVOKER
INLINE TYPE 1
RETURN 'dev'

If it's created in syslib it can be accessed without qualifying it like this:

SELECT #servername();



回答2:


SELECT CASE 
         WHEN LogonSource LIKE '%UAT%'  THEN 'UAT' 
         WHEN LogonSource LIKE '%PROD%' THEN 'Prod' 
         ELSE 'Unknown' 
       END DatabaseName 
FROM   DBC.SessionInfoV 
WHERE  UserName = 'myname';


来源:https://stackoverflow.com/questions/24982325/teradata-how-to-get-the-server-name-using-query

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!