Sql server 2005 SQL Server动态SQL

Sql server 2005 SQL Server动态SQL,sql-server-2005,Sql Server 2005,我正在执行动态SQL sqlQuery = " SELECT "; sqlQuery += _Allowed + " , "; sqlQuery += " + cast( "; sqlQuery += " _ID as nvarchar ) "; sqlQuery += " FROM "; sqlQuery += " TBL_SUCCESS "; 当我执行它时,假设在单个列中返回公共的分隔值,如2,4,5 相反,它在单独的列中返回值 我的MyDataTable假设要填充 Column1

我正在执行动态SQL

sqlQuery = " SELECT ";
sqlQuery += _Allowed + " , "; 
sqlQuery += " + cast( ";
sqlQuery += " _ID as nvarchar ) ";
sqlQuery += " FROM ";
sqlQuery += " TBL_SUCCESS ";  
当我执行它时,假设在单个列中返回公共的分隔值,如2,4,5

相反,它在单独的列中返回值

我的MyDataTable假设要填充

Column1
2,4,5
但它很流行

column1  column2  column3
2         4         5   

如何获得输出?

需要查看
\u Allowed
的值才能知道还有什么发生,但至少需要在逗号周围加引号,并将其连接到SQL语句中,如下所示:

sqlQuery += _Allowed + " + ' , ' ";  

与其他字符串不同,sql字符串没有什么神奇之处。如果将其打印出来,就像打印任何其他字符串一样,您将看到发送到数据库的最终字符串。从这里,您可能会发现您想要修改什么,以使它看起来像您想要的那样,并且一旦您知道了这一点,您可能也会发现如何在动态sql字符串中实现这一点。