2009-07-24 8 views

Répondre

3

Quelque chose comme ça?

DECLARE @MySQL nvarchar(MAX) 
SELECT @MySql = SqlColumn FROM MyTable WHERE MyId = 1 
EXEC(@MySql) 
2

Ici, vous allez, en utilisant sp_executesql

DECLARE @MySQL NVARCHAR(MAX) 
SELECT @MySQL = 'select top 1 * from Information_schema.tables' 
EXEC sp_executeSQL @MySQL 

EDIT: Pour une grande lecture, que certains appellent le guide définitif sur le travail avec T-SQL dynamique reportez-vous à la article:

The Curse and Blessings of Dynamic SQL

1

Juste pour ajouter à la réponse de Robin. Le plus important est de s'assurer que vous avez une protection contre les SQL malveillants sur le terrain - vous ne dites pas comment l'instruction va entrer dans la base de données, mais vous devez faire très attention de ne pas permettre au SQL d'y entrer (par exemple ne veulent pas que vos données soient supprimées par une déclaration de voyous)!

Questions connexes