2010-10-06 1 views
-1

J'ai une fonction qui prend deux type et valeur de paramètre. Selon le type, il recherchera dans la table correspondante si la valeur existe ou non et retournera une valeur booléenne. Maintenant, j'ai créé une table avec le type en colonnes. Je veux passer le nom de la colonne et ses valeurs correspondantes à transmettre à la fonction.Pour comparer le nom de colonne avec les valeurs correspondantes dans Microsoft SQL Server

Par exemple

manager employee 
======= ========= 
leo  john 

lia  joesph 

c'est la table avec le gestionnaire de nom de la colonne et des employés et leurs valeurs correspondantes. Je dois obtenir comme

function validate(columnname1,columnvaue1), 
function validate(columnname1,columnvaue2), 
function validate(columnname2,columnvaue1), 
function validate(columnname2,columnvaue2) 

Pouvez-vous s'il vous plaît me suggérer une solution ....

+0

Pouvez-vous clarifier la structure de votre table et votre objectif? – JNK

+0

vous voulez utiliser SQL dynamique? – Beth

Répondre

0

My SQL est incroyablement rouillé, mais cette aide? (Je l'ai même testé :)

CREATE PROCEDURE [dbo].[ValidateValue] 
    @columnname nchar(10), 
    @columnvalue nchar(10), 
    @tablename nchar(10) 
AS 
BEGIN 
    -- SET NOCOUNT ON added to prevent extra result sets from 
    -- interfering with SELECT statements. 
    SET NOCOUNT ON; 
    DECLARE @SQL varchar(200) 
    SELECT @SQL = 'SELECT COUNT(*) FROM ' + 
    @tablename + ' WHERE ' + 
    @columnname + ' = ' + QUOTENAME(@columnvalue,CHAR(39)) 
    EXEC (@SQL) 
END