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