2016-04-18 27 views
3

Ich habe das nächste Skript Beispiel:Get Wert von SQL Var angepasst auf varchar Text

DECLARE @lCode INT 
DECLARE @lText VARCHAR(400) 
DECLARE @lConditionName VARCHAR(40) 
DECLARE @Aux VARCHAR(400) 

SET @lCode = 1234; 
SET @lConditionName = 'Code' 

SET @Aux = '@l' + @lConditionName 

SET @lText = 'SELECT * FROM Table WHERE Code = ' + @Aux 

PRINT @lText 

Das Ergebnis ist:

SELECT * FROM Table WHERE Code = @lCode 

Wie kann ich den Wert von @Aux Var wie diese obtein?

SELECT * FROM Table WHERE Code = 1234 

Antwort

3
DECLARE @lCode INT 
DECLARE @lText NVARCHAR(400) 
DECLARE @lConditionName NVARCHAR(40) 
DECLARE @Aux NVARCHAR(400) 

SET @lCode = 1234; 
SET @lConditionName = N'Code' 

SET @Aux = N'@l' + @lConditionName 

SET @lText = N'SELECT * FROM Table WHERE Code = ' + @Aux 

PRINT @lText 

EXEC sp_executesql @lText, N'@lcode INT', @lcode 
+0

@lcode ist ein dinamic var name –

+0

@TomasCaffrey: in SQL Server, kann eine Variable‘ t heißen '1234' – Quassnoi

+0

Danke Quassnoi. Ich verstehe, aber ich brauche den Wert von var, welcher Name in aux var ist. aux = 'lcode' ... Ich hoffe es zu erklären. –

0

Sie können dies versuchen:

DECLARE @lCode INT 
DECLARE @lText NVARCHAR(400) 
DECLARE @lConditionName NVARCHAR(40) 
DECLARE @Aux NVARCHAR(400) 

SET @lCode = 1234; 
SET @lConditionName = N'Code' 

SET @Aux = N'@l' + @lConditionName 

SET @lText = N'SELECT * FROM Table WHERE Code = ' + @Aux 

set @lText = N'Print ' + @Aux 
print @lText 
EXEC sp_executesql @lText, N'@lcode INT', @lcode 

Ausgabe

Print @lCode 
1234