Nr Tabellenwertfunktionen - Multi-Anweisung TVF, Inline TVF oder SQLCLR TVF - - müssen eine konsistente/deterministische Ergebnismenge zurückgeben. Dies ist vergleichbar mit skalaren UDFs (T-SQL und SQLCLR), die immer den gleichen Datentyp zurückgeben müssen.
In der Tat, das Ergebnis von TVF, unabhängig von der Art der TVF zurückgegeben werden, ist in den System-Metadaten definiert, wenn die TVF erstellt wird, und kann nicht zur Laufzeit geändert werden. Sie können die Definitionen finden Sie in der folgenden Kriterien:
SELECT so.type_desc AS [ObjectType], so.[name] AS [ObjectName], sc.*
FROM sys.columns sc
INNER JOIN sys.objects so
ON so.[object_id] = sc.[object_id]
WHERE so.type_desc NOT IN ('SYSTEM_TABLE', 'USER_TABLE', 'INTERNAL_TABLE',
'VIEW', 'TYPE_TABLE')
ORDER BY so.[type_desc], so.[name], sc.column_id;
Für ObjectType
Sie Einträge zurückbekommen können folgende Werte gelten:
- CLR_TABLE_VALUED_FUNCTION
- SQL_INLINE_TABLE_VALUED_FUNCTION
- SQL_TABLE_VALUED_FUNCTION
Haben Sie versucht, die Funktionsargumente als a anzuhängen? Lias Namen in der Ergebnismenge !? – Lucky
nein. Ich habe nicht darüber nachgedacht, lass mich das versuchen. –
Was ist die Syntax dafür? das scheint nicht zu funktionieren: INSERT INTO \ @Tabelle SELECT \ @ parameter1 als (\ @ parameter1 + 'irgendein Text') –