如何从SQL中的表中删除逗号分隔字符串中的列

时间:2014-12-01 18:58:37

标签: sql sql-server sql-server-2008

我有一个逗号分隔的列列表,如:

@cols =  '[FirstName],[LastName],[Address]'

当我将这些列删除为

  ALTER TABLE #TempTable DROP COLUMN [FirstName],[LastName],[Address]

它正在运作。但如果"地址"列不在" #ThotTable"表然后我收到一个错误。 我知道我们可以删除单个列:

IF EXISTS(SELECT * FROM sys.columns
WHERE Name = N'columnName' AND OBJECT_ID = OBJECT_ID(N'tableName'))
BEGIN
PRINT 'Your Column Exists'
END  

但是我如何循环遍历该字符串并查看它是否存在?

由于

1 个答案:

答案 0 :(得分:0)

    @temCols = '1,asdfasd,2werw,3,5,8';    

    WHILE len(@temCols) > 0
                            BEGIN
                                set @column = left(@temCols, charindex(',', @temCols+',')-1)

                            set @temCols = stuff(@temCols, 1, charindex(',', @temCols+','), '')
print @column;

                        END