47 lines
1.7 KiB
C#
47 lines
1.7 KiB
C#
namespace Sozsoft.Mcp;
|
|
|
|
/// <summary>
|
|
/// Kayitli nesneleri listelemek icin kullanilan katalog sorgulari. Parametre almazlar;
|
|
/// sabit metin oldugu icin string birlestirme riski yoktur.
|
|
/// </summary>
|
|
internal static class McpCatalogQueries
|
|
{
|
|
public const string SqlServer = """
|
|
SELECT
|
|
SCHEMA_NAME(o.schema_id) AS SchemaName,
|
|
o.name AS ObjectName,
|
|
CASE o.type
|
|
WHEN 'V' THEN 'VIEW'
|
|
WHEN 'P' THEN 'PROCEDURE'
|
|
WHEN 'IF' THEN 'TABLE_FUNCTION'
|
|
WHEN 'TF' THEN 'TABLE_FUNCTION'
|
|
WHEN 'FN' THEN 'SCALAR_FUNCTION'
|
|
END AS ObjectKind
|
|
FROM sys.objects o
|
|
WHERE o.is_ms_shipped = 0
|
|
AND o.type IN ('V', 'P', 'IF', 'TF', 'FN')
|
|
ORDER BY SchemaName, ObjectName
|
|
""";
|
|
|
|
public const string Postgres = """
|
|
SELECT n.nspname AS "SchemaName",
|
|
c.relname AS "ObjectName",
|
|
'VIEW' AS "ObjectKind"
|
|
FROM pg_class c
|
|
JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
WHERE c.relkind IN ('v', 'm')
|
|
AND n.nspname NOT IN ('pg_catalog', 'information_schema')
|
|
UNION ALL
|
|
SELECT n.nspname AS "SchemaName",
|
|
p.proname AS "ObjectName",
|
|
CASE
|
|
WHEN p.prokind = 'p' THEN 'PROCEDURE'
|
|
WHEN p.proretset THEN 'TABLE_FUNCTION'
|
|
ELSE 'SCALAR_FUNCTION'
|
|
END AS "ObjectKind"
|
|
FROM pg_proc p
|
|
JOIN pg_namespace n ON n.oid = p.pronamespace
|
|
WHERE n.nspname NOT IN ('pg_catalog', 'information_schema')
|
|
ORDER BY 1, 2
|
|
""";
|
|
}
|