有时候给表新增字段,想把新的字段增加到指定的字段后面,sqserver的规则是不允许的。
具体的思路是:重建表,排序字段,再导入数据
下面是示例语句
IF EXISTS ( SELECT * FROM tempdb..sysobjects WHERE id = OBJECT_ID('tempdb..#Temp_ColOrder') )
DROP TABLE #Temp_ColOrder;
--输入参数
DECLARE @Table NVARCHAR(100)='KQHK_log_跨區匯款記錄'--表名
DECLARE @BeforeCol NVARCHAR(100)='HKNEIMA'--指定列名
DECLARE @InsertCol NVARCHAR(100)='TEST_3'--要插入的列名
DECLARE @InsertColType NVARCHAR(100)='INT'--要插入字段的类型
DECLARE @InsertColLength INT=200---要插入列的类型长度 除了('nchar', 'char', 'nvarchar','varchar'),其余类型不用输入
IF NOT EXISTS(SELECT * FROM sys.tables WHERE name=@Table)
BEGIN
SELECT '不存在表:'+@Table AS N'错误信息'
RETURN
END
IF NOT EXISTS(SELECT * FROM sys.TABLEs tb LEFT JOIN sys.columns col ON tb.object_id=col.object_id WHERE tb.name=@Table AND col.name=@B