如何在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