SQL Server 2012:从INFORMATION_SCHEMA.COLUMNS更改COLUMN_NAME的顺序

时间:2017-11-28 10:44:05

标签: sql-server

我有这个光标:

DECLARE cur CURSOR LOCAL FOR
     SELECT QUOTENAME(COLUMN_NAME) 
     FROM INFORMATION_SCHEMA.COLUMNS 
     WHERE TABLE_NAME = REPLACE(@TableName, 'form.', '')

OPEN cur    
FETCH NEXT FROM cur INTO @fieldname

我可以更改光标的顺序吗?

这样的事情:

我现在开始:

@fieldname = field1
@fieldname = field2
@fieldname = field3

但是我想通过这个订单来获取它们:

@fieldname = field2
@fieldname = field1
@fieldname = field3

最终我想要实现的是使用字段名称在另一个表中的顺序(其中包括这些列:fieldnamefieldorder)。所以我想使用fieldorder字段来指定游标迭代中的顺序。

编辑我试过没有运气:

SELECT 
    QUOTENAME(COLUMN_NAME) 
FROM
    INFORMATION_SCHEMA.COLUMNS AS inf 
JOIN
    dbo.FormFields AS tf ON COLUMN_NAME = tf.fieldname 
WHERE   
    TABLE_NAME = REPLACE(@TableName, 'form.', '') 
    AND SUBSTRING(COLUMN_NAME, 1, 1) IN ('1', '2', '3', '4', '5', '6', '7', '8', '9', '0') 
ORDER BY
    tf.fieldorder

0 个答案:

没有答案