Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SQL中从表中删除逗号分隔字符串中的列_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

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

如何在SQL中从表中删除逗号分隔字符串中的列,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有一个逗号分隔的列列表,如: @cols = '[FirstName],[LastName],[Address]' 当我将这些列作为 ALTER TABLE #TempTable DROP COLUMN [FirstName],[LastName],[Address] 它正在工作。但如果“#tentable”表中没有“Address”列,那么我就得到了一个错误。 我知道我们可以将各个列删除为: IF EXISTS(SELECT * FROM sys.columns WHERE Nam

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

@cols =  '[FirstName],[LastName],[Address]'
当我将这些列作为

  ALTER TABLE #TempTable DROP COLUMN [FirstName],[LastName],[Address]
它正在工作。但如果“#tentable”表中没有“Address”列,那么我就得到了一个错误。 我知道我们可以将各个列删除为:

IF EXISTS(SELECT * FROM sys.columns
WHERE Name = N'columnName' AND OBJECT_ID = OBJECT_ID(N'tableName'))
BEGIN
PRINT 'Your Column Exists'
END  
但我如何循环遍历该字符串并查看它是否存在

谢谢

Google“SQL字符串解析”
    @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