22,210
社区成员
发帖
与我相关
我的任务
分享
CREATE procedure [dbo].[usp_Get_Field_Set](
@FIELD VARCHAR(800),
@TABLE_NAME VARCHAR(800) ,
@FILED_SET VARCHAR(8000) OUTPUT
)
AS
BEGIN
DECLARE @TEMP_FIELD VARCHAR(800)
SET @FILED_SET = '('
DECLARE @SQL VARCHAR(8000)
SET @SQL = 'DECLARE QUERY_CURSOR CURSOR FOR
SELECT ' + @FIELD + ' FROM ' + @TABLE_NAME
EXEC(@SQL)
OPEN QUERY_CURSOR
FETCH NEXT FROM QUERY_CURSOR
INTO
@TEMP_FIELD
WHILE @@FETCH_STATUS = 0
BEGIN
SET @FILED_SET += CONVERT(VARCHAR(800),@TEMP_FIELD) + ','
FETCH NEXT FROM QUERY_CURSOR
INTO
@TEMP_FIELD
END
CLOSE QUERY_CURSOR
DEALLOCATE QUERY_CURSOR
SET @FILED_SET = SUBSTRING(@FILED_SET,1,LEN(@FILED_SET)-1) + ')'
END
DECLARE @FIELD_SET VARCHAR(8000)
EXEC usp_Get_Field_Set 'OrderKey','dbo.TRU_WMS_ORDERS',@FIELD_SET OUTPUT
SELECT @FIELD_SET
这样可以出结果,比如(10 ,12 )