die Verwendung von Tabellen-Namen als parameter in der sql-Funktion

Möchte ich erstellen-Funktion, die die Verwendung von Tabellen-Namen als parameter. Wie ich Suche ich brauche dynamisches sql verwenden. Ich versuche diesen code:

CREATE FUNCTION get_column_id
    (
    @TableName VARCHAR(30),
    @ColumnName VARCHAR(30),
    )
RETURNS int 
AS
BEGIN
IF EXISTS 
    (
    DECLARE @SQL VARCHAR(50)
    SET @sql = 'SELECT' + @ColumnName + 'FROM' + @TableName + 'WHERE @ColumnName =    @ColumnNameValue';
    EXEC(@sql)
    )
BEGIN

Aber bekomme Fehler. Ist, wo jeder Weg, um procceed?

Ich versuche verwenden dynamisches sql in solcher Weise

DECLARE @SQL VARCHAR(50)
SET @SQL = 'SELECT' + @ColumnName + 'FROM' + @Table + 'WHERE @ColumnName = @ColumnNameValue'
EXEC(@SQL)
DECLARE @TableName table (Name VARCHAR(30))
INSERT INTO @TableName VALUES (@SQL)
IF EXISTS 
    (SELECT Name FROM @TableName WHERE Name = @ColumnNameValue)

Aber bekommen Invalid use of a side-effecting operator 'EXECUTE STRING' within a function.
Wer weiß, wie umgehen Sie diese Einschränkung?

Naja, man kann nicht dynamisches sql verwenden auf eine Funktion in SQL Server

InformationsquelleAutor genky | 2013-03-20

Schreibe einen Kommentar