Non mi sembra un dramma.
puoi sempre ricavare i nomi dei campi della tabella utilizzando questa store procedure di "servizio" che ti elenca un po' di cose utili:
codice:
CREATE PROC dbo.sp_listacampi
@TableName varchar(50)
AS
-- uso: exec dbo.sp_listacampi 'nometabella'
-- dove nometabella è il nome della tabella da usare
SET NOCOUNT ON
DECLARE @Separator char(1),
@Prefix char(1)
SET @Separator = ','
SET @Prefix ='@'
SELECT CAST( COLUMN_NAME + @Separator AS varchar(30))as ColumnName
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TableName
SELECT CAST( @Prefix + COLUMN_NAME +' '+ DATA_TYPE
+ CAST (CASE
WHEN CHARACTER_MAXIMUM_LENGTH <> 0 THEN '('+ CONVERT(varchar(7),CHARACTER_MAXIMUM_LENGTH)+'),'
ELSE ','
END AS varchar(7))
AS varchar(30))
AS Declaration
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TableName
SELECT CAST(@Prefix + COLUMN_NAME + @Separator as varchar(30) )AS Parameter
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TableName
SELECT CAST(COLUMN_NAME + ' = ' + @Prefix + COLUMN_NAME + ',' as varchar(70) ) AS Assignment
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TableName
GO