Générer un traitement de string pour les lignes d'une table

J'ai une table avec des colonnes et une procédure pour créer une table SQL:

DECLARE @SQLSsortingng NVARCHAR(MAX) SELECT @SQLSsortingng = ' '+ ColName + ' ' + ColType + ' '+ ColNullable + ', ' FROM FS_Report_Tables WHERE TableId = 0 PRINT ('CREATE TABLE '+ 'Test' + @SQLSsortingng) EXEC ('CREATE TABLE '+ 'Test' + @SQLSsortingng) 

Le code actuel imprime seulement la dernière colonne quand j'ai besoin de tout (sans coma enfin)

Exemple de table de données:

 ColumnId TableId ColName ColType ColNullable 1 0 A int NOT NULL 2 0 B int NOT NULL 

Comment puis-je générer SQLSsortingng avec des nœuds à partir de SELECT partir d'une autre table?

S'il vous plaît essayez:

 DECLARE @SQLSsortingng NVARCHAR(MAX) SELECT @SQLSsortingng = COALESCE(@SQLSsortingng + ', ', '') + ColName + ' ' + ColType + ' ' + ColNullable from YourTable select @SQLSsortingng EXEC ('CREATE TABLE YourTableName (' + @SQLSsortingng + ')') 
 DECLARE @SQLSsortingng NVARCHAR(MAX) SET @SQLSsortingng = 'CREATE TABLE '+ @TableName + ' ( '+@Column1Name+' '+@Column1DataType +' '+@Column1Nullable +') ' PREPARE stmt FROM @SQLSsortingng; EXECUTE stmt; DEALLOCATE PREPARE stmt; 

Vous devez utiliser des instructions préparées

Le server SQL vous fournit une procédure stockée, sp_executesql qui effectuera cette tâche pour vous