
客户物料对应表视图,在标准扩展基础上增加字段,
可执行以下脚本,快速重建视图以及相关表
脚本全部拷贝出来,全选一键执行即可
备注:
1、注意使用前提
2、不支持公有云天梯提交该脚本,后续通版会集成一键重建视图的功能
```sql
/*
--使用前提:
1、仅在标准客户物料对应表中增加字段,不修改标准视图的关联取数逻辑
2、请保证客户物料对应表视图与客户物料对应表增加的字段名一致
3、适用于21年4月以后版本
4、适用于SqlServer
--查看视图语句备份
select * from CUST_BAK_VIEWSQL order by bak_time desc
*/
SET NOCOUNT ON
/*记录默认列数据用于对比*/
IF OBJECT_ID('COLUMN_CONTENT') <> 0 DROP TABLE COLUMN_CONTENT;
GO
CREATE TABLE COLUMN_CONTENT (TABLE_NAME VARCHAR(255),COLUMN_NAME VARCHAR(255));
GO
INSERT INTO COLUMN_CONTENT VALUES('T_SAL_CUSTMATMAPPINGENTRY','FENTRYID');
INSERT INTO COLUMN_CONTENT VALUES('T_SAL_CUSTMATMAPPINGENTRY','FID');
INSERT INTO COLUMN_CONTENT VALUES('T_SAL_CUSTMATMAPPINGENTRY','FSEQ');
INSERT INTO COLUMN_CONTENT VALUES('T_SAL_CUSTMATMAPPINGENTRY','FCUSTMATNO');
INSERT INTO COLUMN_CONTENT VALUES('T_SAL_CUSTMATMAPPINGENTRY','FMATERIALID');
INSERT INTO COLUMN_CONTENT VALUES('T_SAL_CUSTMATMAPPINGENTRY','FEFFECTIVE');
INSERT INTO COLUMN_CONTENT VALUES('T_SAL_CUSTMATMAPPINGENTRY','FAUXPROPID');
INSERT INTO COLUMN_CONTENT VALUES('T_SAL_CUSTMATMAPPINGENTRY','FDEFCARRY');
INSERT INTO COLUMN_CONTENT VALUES('T_SAL_CUSTMATMAPPINGENTRY','FKDPACKAGEQTY');
INSERT INTO COLUMN_CONTENT VALUES('T_SAL_CUSTMATMAPPINGENTRY_L','FPKID');
INSERT INTO COLUMN_CONTENT VALUES('T_SAL_CUSTMATMAPPINGENTRY_L','FENTRYID');
INSERT INTO COLUMN_CONTENT VALUES('T_SAL_CUSTMATMAPPINGENTRY_L','FLOCALEID');
INSERT INTO COLUMN_CONTENT VALUES('T_SAL_CUSTMATMAPPINGENTRY_L','FCUSTMATNAME');
GO
IF OBJECT_ID('CUST_BAK_VIEWSQL') IS NULL CREATE TABLE CUST_BAK_VIEWSQL (BAK_TIME DATETIME,OBJECT_ID BIGINT,COM_ID BIGINT,VIEW_SQL NTEXT);
GO
PRINT('1 记录默认列完成!');
/*备份历史视图创建SQL*/
INSERT INTO CUST_BAK_VIEWSQL
SELECT GETDATE() BAK_TIME,VI.OBJECT_ID,COM.ID,COM.TEXT
FROM SYS.ALL_VIEWS VI INNER JOIN SYS.SYSCOMMENTS COM ON VI.OBJECT_ID = COM.ID
WHERE 1=1
AND VI.NAME IN ('V_SAL_CUSTMATMAPPING','V_SAL_CUSTMATMAPPING_L')
ORDER BY VI.OBJECT_ID;
GO
PRINT('2 备份历史视图创建SQL完成!');
/*重建V_SAL_CUSTMATMAPPING*/
--拼接自定义字段
DECLARE @SQL_CUST VARCHAR(1000) =','
DECLARE CUR01 CURSOR FOR
SELECT 'ENTRY.'+TC.name COLUMN_NAME
FROM SYS.all_objects TA INNER JOIN SYS.all_columns TC ON TA.object_id = TC.object_id
LEFT JOIN COLUMN_CONTENT CON ON TA.NAME = CON.TABLE_NAME AND TC.NAME = CON.COLUMN_NAME AND CON.TABLE_NAME = 'T_SAL_CUSTMATMAPPINGENTRY'
WHERE 1=1 AND TA.NAME = 'T_SAL_CUSTMATMAPPINGENTRY' AND CON.COLUMN_NAME IS NULL
OPEN CUR01
DECLARE @CNAME VARCHAR(255)
FETCH NEXT FROM CUR01 INTO @CNAME
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQL_CUST = @SQL_CUST + @CNAME + ',';
FETCH NEXT FROM CUR01 INTO @CNAME;
END
SET @SQL_CUST = SUBSTRING(@SQL_CUST,0,LEN(@SQL_CUST))
PRINT('3 客户物料对应表自定义拼接字段为:' + @SQL_CUST);
CLOSE CUR01;
DEALLOCATE CUR01;
--重新创建视图-明细
IF OBJECT_ID('V_SAL_CUSTMATMAPPING') <> 0 DROP VIEW V_SAL_CUSTMATMAPPING;
PRINT('视图V_SAL_CUSTMATMAPPING已删除!');
DECLARE @CREATEVIEW_SQL VARCHAR(MAX);
SET @CREATEVIEW_SQL = REPLACE('
CREATE VIEW [dbo].[V_SAL_CUSTMATMAPPING] AS
SELECT ((((((CONVERT(VARCHAR(80), HEAD.FID) + ''&'') + CONVERT(VARCHAR(80), ENTRY.FENTRYID)) + ''&'') + CONVERT(VARCHAR(80), HEAD.FUSEORGID)) + ''&'') + CONVERT(VARCHAR(80), CUST.FMASTERID)) fid, HEAD.FID fheadfid, ENTRY.FCUSTMATNO fnumber, ENTRY.FAUXPROPID, HEAD.FSALEORGID fcreateorgid, HEAD.FUSEORGID, CUST.FMASTERID fcustomerid, HEAD.FCREATORID, HEAD.FCREATEDATE, HEAD.FMODIFIERID, HEAD.FMODIFYDATE, ''C'' fdocumentstatus, ''A'' fforbidstatus, ENTRY.FMATERIALID, ENTRY.FEFFECTIVE, ENTRY.FDEFCARRY, HEAD.FISOLDVERSION --TAG --TAB02
FROM T_SAL_CUSTMATMAPPING HEAD INNER JOIN T_SAL_CUSTMATMAPPINGENTRY ENTRY ON HEAD.FID = ENTRY.FID LEFT OUTER JOIN T_SAL_MULCUSTMATMAPPING MCM ON HEAD.FID = MCM.FID LEFT OUTER JOIN T_BD_CUSTOMER CUST ON CUST.FCUSTID = MCM.FMULCUSTOMERID WHERE ((HEAD.FDOCUMENTSTATUS = ''A'' AND (MCM.FMULCUSTOMERID IS NOT NULL)) AND (MCM.FMULCUSTOMERID <> HEAD.FCUSTOMERID))
UNION ALL SELECT ((((CONVERT(VARCHAR(80), HEAD.FID) + ''&'') + CONVERT(VARCHAR(80), ENTRY.FENTRYID)) + ''&'') + CONVERT(VARCHAR(80), HEAD.FUSEORGID)) fid, HEAD.FID fheadfid, ENTRY.FCUSTMATNO fnumber, ENTRY.FAUXPROPID, HEAD.FSALEORGID fcreateorgid, HEAD.FUSEORGID, ISNULL(CUST.FMASTERID, 0) fcustomerid, HEAD.FCREATORID, HEAD.FCREATEDATE, HEAD.FMODIFIERID, HEAD.FMODIFYDATE, ''C'' fdocumentstatus, ''A'' fforbidstatus, ENTRY.FMATERIALID, ENTRY.FEFFECTIVE, ENTRY.FDEFCARRY, HEAD.FISOLDVERSION --TAG --TAB02
FROM T_SAL_CUSTMATMAPPING HEAD INNER JOIN T_SAL_CUSTMATMAPPINGENTRY ENTRY ON HEAD.FID = ENTRY.FID LEFT OUTER JOIN T_SAL_MULCUSTMATMAPPING MCM ON HEAD.FID = MCM.FID LEFT OUTER JOIN T_BD_CUSTOMER CUST ON CUST.FCUSTID = HEAD.FCUSTOMERID WHERE ((HEAD.FDOCUMENTSTATUS = ''A'' AND (MCM.FMULCUSTOMERID IS NULL)) AND HEAD.FCUSTOMERID = 0)
UNION ALL SELECT ((((CONVERT(VARCHAR(80), HEAD.FID) + ''&'') + CONVERT(VARCHAR(80), ENTRY.FENTRYID)) + ''&'') + CONVERT(VARCHAR(80), HEAD.FUSEORGID)) fid, HEAD.FID fheadfid, ENTRY.FCUSTMATNO fnumber, ENTRY.FAUXPROPID, HEAD.FSALEORGID fcreateorgid, HEAD.FUSEORGID, ISNULL(CUST.FMASTERID, 0) fcustomerid, HEAD.FCREATORID, HEAD.FCREATEDATE, HEAD.FMODIFIERID, HEAD.FMODIFYDATE, ''C'' fdocumentstatus, ''A'' fforbidstatus, ENTRY.FMATERIALID, ENTRY.FEFFECTIVE, ENTRY.FDEFCARRY, HEAD.FISOLDVERSION --TAG --TAB02
FROM T_SAL_CUSTMATMAPPING HEAD INNER JOIN T_SAL_CUSTMATMAPPINGENTRY ENTRY ON HEAD.FID = ENTRY.FID LEFT OUTER JOIN T_BD_CUSTOMER CUST ON CUST.FCUSTID = HEAD.FCUSTOMERID WHERE (HEAD.FDOCUMENTSTATUS = ''A'' AND (HEAD.FCUSTOMERID > 0))
UNION ALL SELECT ((((CONVERT(VARCHAR(80), HEAD.FID) + ''&'') + CONVERT(VARCHAR(80), ENTRY.FENTRYID)) + ''&'') + CONVERT(VARCHAR(80), ISSUE.FISSUEORGID)) fid, HEAD.FID fheadfid, ENTRY.FCUSTMATNO fnumber, ENTRY.FAUXPROPID, HEAD.FSALEORGID fcreateorgid, ISSUE.FISSUEORGID fuseorgid, CUST.FMASTERID fcustomerid, HEAD.FCREATORID, HEAD.FCREATEDATE, HEAD.FMODIFIERID, HEAD.FMODIFYDATE, ''C'' fdocumentstatus, ''A'' fforbidstatus, MMASTER.FMATERIALID, ENTRY.FEFFECTIVE, ENTRY.FDEFCARRY, HEAD.FISOLDVERSION --TAG --TAB02
FROM T_SAL_CUSTMATMAPPING_ISSUE ISSUE INNER JOIN T_SAL_CUSTMATMAPPING HEAD ON ISSUE.FID = HEAD.FID INNER JOIN T_SAL_CUSTMATMAPPINGENTRY ENTRY ON HEAD.FID = ENTRY.FID INNER JOIN T_BD_MATERIAL M ON M.FMATERIALID = ENTRY.FMATERIALID INNER JOIN T_BD_MATERIAL MMASTER ON (MMASTER.FMASTERID = M.FMASTERID AND (ISSUE.FISSUEORGID = MMASTER.FUSEORGID OR EXISTS (SELECT 1 FROM T_META_BASEDATATYPE BT WHERE (BT.FBASEDATATYPEID = ''BD_MATERIAL'' AND (BT.FSTRATEGYTYPE = 1 OR BT.FSTRATEGYTYPE = 3))))) INNER JOIN T_BD_CUSTOMER CUST ON CUST.FCUSTID = HEAD.FCUSTOMERID WHERE (HEAD.FDOCUMENTSTATUS = ''A'' AND (HEAD.FCUSTOMERID > 0))
UNION ALL SELECT ((((CONVERT(VARCHAR(80), HEAD.FID) + ''&'') + CONVERT(VARCHAR(80), ENTRY.FENTRYID)) + ''&'') + CONVERT(VARCHAR(80), ISSUE.FISSUEORGID)) fid, HEAD.FID fheadfid, ENTRY.FCUSTMATNO fnumber, ENTRY.FAUXPROPID, HEAD.FSALEORGID fcreateorgid, ISSUE.FISSUEORGID fuseorgid, 0 fcustomerid, HEAD.FCREATORID, HEAD.FCREATEDATE, HEAD.FMODIFIERID, HEAD.FMODIFYDATE, ''C'' fdocumentstatus, ''A'' fforbidstatus, MMASTER.FMATERIALID, ENTRY.FEFFECTIVE, ENTRY.FDEFCARRY, HEAD.FISOLDVERSION --TAG --TAB02
FROM T_SAL_CUSTMATMAPPING_ISSUE ISSUE INNER JOIN T_SAL_CUSTMATMAPPING HEAD ON ISSUE.FID = HEAD.FID INNER JOIN T_SAL_CUSTMATMAPPINGENTRY ENTRY ON HEAD.FID = ENTRY.FID LEFT OUTER JOIN T_SAL_MULCUSTMATMAPPING MCM ON HEAD.FID = MCM.FID INNER JOIN T_BD_MATERIAL M ON M.FMATERIALID = ENTRY.FMATERIALID INNER JOIN T_BD_MATERIAL MMASTER ON (MMASTER.FMASTERID = M.FMASTERID AND (ISSUE.FISSUEORGID = MMASTER.FUSEORGID OR EXISTS (SELECT 1 FROM T_META_BASEDATATYPE BT WHERE (BT.FBASEDATATYPEID = ''BD_MATERIAL'' AND (BT.FSTRATEGYTYPE = 1 OR BT.FSTRATEGYTYPE = 3))))) WHERE ((HEAD.FDOCUMENTSTATUS = ''A'' AND HEAD.FCUSTOMERID = 0) AND (MCM.FMULCUSTOMERID IS NULL))
UNION ALL SELECT ((((((CONVERT(VARCHAR(80), HEAD.FID) + ''&'') + CONVERT(VARCHAR(80), ENTRY.FENTRYID)) + ''&'') + CONVERT(VARCHAR(80), ISSUE.FISSUEORGID)) + ''&'') + CONVERT(VARCHAR(80), CUST.FMASTERID)) fid, HEAD.FID fheadfid, ENTRY.FCUSTMATNO fnumber, ENTRY.FAUXPROPID, HEAD.FSALEORGID fcreateorgid, ISSUE.FISSUEORGID fuseorgid, CUST.FMASTERID fcustomerid, HEAD.FCREATORID, HEAD.FCREATEDATE, HEAD.FMODIFIERID, HEAD.FMODIFYDATE, ''C'' fdocumentstatus, ''A'' fforbidstatus, MMASTER.FMATERIALID, ENTRY.FEFFECTIVE, ENTRY.FDEFCARRY, HEAD.FISOLDVERSION --TAG --TAB02
FROM T_SAL_CUSTMATMAPPING_ISSUE ISSUE INNER JOIN T_SAL_CUSTMATMAPPING HEAD ON ISSUE.FID = HEAD.FID INNER JOIN T_SAL_MULCUSTMATMAPPING MCM ON HEAD.FID = MCM.FID INNER JOIN T_SAL_CUSTMATMAPPINGENTRY ENTRY ON MCM.FID = ENTRY.FID INNER JOIN T_BD_MATERIAL M ON M.FMATERIALID = ENTRY.FMATERIALID INNER JOIN T_BD_MATERIAL MMASTER ON (MMASTER.FMASTERID = M.FMASTERID AND (ISSUE.FISSUEORGID = MMASTER.FUSEORGID OR EXISTS (SELECT 1 FROM T_META_BASEDATATYPE BT WHERE (BT.FBASEDATATYPEID = ''BD_MATERIAL'' AND (BT.FSTRATEGYTYPE = 1 OR BT.FSTRATEGYTYPE = 3))))) INNER JOIN T_BD_CUSTOMER CUST ON CUST.FCUSTID = MCM.FMULCUSTOMERID WHERE ((HEAD.FDOCUMENTSTATUS = ''A'' AND (MCM.FMULCUSTOMERID IS NOT NULL)) AND (MCM.FMULCUSTOMERID <> HEAD.FCUSTOMERID))','--TAG',@SQL_CUST);
EXEC(@CREATEVIEW_SQL);
PRINT('视图V_SAL_CUSTMATMAPPING已重建!');
GO
/*重建V_SAL_CUSTMATMAPPING_L*/
--拼接自定义字段
DECLARE @SQL_CUST VARCHAR(1000) =','
DECLARE CUR01 CURSOR FOR
SELECT 'L.'+TC.name COLUMN_NAME
FROM SYS.all_objects TA INNER JOIN SYS.all_columns TC ON TA.object_id = TC.object_id
LEFT JOIN COLUMN_CONTENT CON ON TA.NAME = CON.TABLE_NAME AND TC.NAME = CON.COLUMN_NAME AND CON.TABLE_NAME = 'T_SAL_CUSTMATMAPPINGENTRY_L'
WHERE 1=1 AND TA.NAME = 'T_SAL_CUSTMATMAPPINGENTRY_L' AND CON.COLUMN_NAME IS NULL
OPEN CUR01
DECLARE @CNAME VARCHAR(255)
FETCH NEXT FROM CUR01 INTO @CNAME
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQL_CUST = @SQL_CUST + @CNAME + ',';
FETCH NEXT FROM CUR01 INTO @CNAME;
END
SET @SQL_CUST = SUBSTRING(@SQL_CUST,0,LEN(@SQL_CUST))
PRINT('4 客户物料对应表多语言表自定义拼接字段为:' + @SQL_CUST);
CLOSE CUR01;
DEALLOCATE CUR01;
--重新创建视图-明细多语言
IF OBJECT_ID('V_SAL_CUSTMATMAPPING_L') <> 0 DROP VIEW V_SAL_CUSTMATMAPPING_L;
PRINT('视图V_SAL_CUSTMATMAPPING_L已删除!');
DECLARE @CREATEVIEW_SQL VARCHAR(MAX);
SET @CREATEVIEW_SQL = REPLACE('CREATE VIEW [dbo].[V_SAL_CUSTMATMAPPING_L] AS
SELECT L.FPKID, ((((CONVERT(VARCHAR(80), HEAD.FID) + ''&'') + CONVERT(VARCHAR(80), ENTRY.FENTRYID)) + ''&'') + CONVERT(VARCHAR(80), HEAD.FUSEORGID)) fid, L.FLOCALEID, L.FCUSTMATNAME fname, '' '' fdescription --TAG --tab02
FROM T_SAL_CUSTMATMAPPINGENTRY_L L INNER JOIN T_SAL_CUSTMATMAPPINGENTRY ENTRY ON L.FENTRYID = ENTRY.FENTRYID INNER JOIN T_SAL_CUSTMATMAPPING HEAD ON ENTRY.FID = HEAD.FID
UNION ALL SELECT L.FPKID, ((((CONVERT(VARCHAR(80), HEAD.FID) + ''&'') + CONVERT(VARCHAR(80), ENTRY.FENTRYID)) + ''&'') + CONVERT(VARCHAR(80), ISSUE.FISSUEORGID)) fid, L.FLOCALEID, L.FCUSTMATNAME fname, '' '' fdescription --TAG --tab02
FROM T_SAL_CUSTMATMAPPINGENTRY_L L INNER JOIN T_SAL_CUSTMATMAPPINGENTRY ENTRY ON L.FENTRYID = ENTRY.FENTRYID INNER JOIN T_SAL_CUSTMATMAPPING HEAD ON ENTRY.FID = HEAD.FID INNER JOIN T_SAL_CUSTMATMAPPING_ISSUE ISSUE ON ISSUE.FID = HEAD.FID
UNION ALL SELECT L.FPKID, ((((((CONVERT(VARCHAR(80), HEAD.FID) + ''&'') + CONVERT(VARCHAR(80), ENTRY.FENTRYID)) + ''&'') + CONVERT(VARCHAR(80), HEAD.FUSEORGID)) + ''&'') + CONVERT(VARCHAR(80), CUST.FMASTERID)) fid, L.FLOCALEID, L.FCUSTMATNAME fname, '' '' fdescription --TAG --tab02
FROM T_SAL_CUSTMATMAPPINGENTRY_L L INNER JOIN T_SAL_CUSTMATMAPPINGENTRY ENTRY ON L.FENTRYID = ENTRY.FENTRYID INNER JOIN T_SAL_CUSTMATMAPPING HEAD ON ENTRY.FID = HEAD.FID INNER JOIN T_SAL_MULCUSTMATMAPPING MCM ON HEAD.FID = MCM.FID INNER JOIN T_BD_CUSTOMER CUST ON CUST.FCUSTID = MCM.FMULCUSTOMERID
UNION ALL SELECT L.FPKID, ((((((CONVERT(VARCHAR(80), HEAD.FID) + ''&'') + CONVERT(VARCHAR(80), ENTRY.FENTRYID)) + ''&'') + CONVERT(VARCHAR(80), ISSUE.FISSUEORGID)) + ''&'') + CONVERT(VARCHAR(80), CUST.FMASTERID)) fid, L.FLOCALEID, L.FCUSTMATNAME fname, '' '' fdescription --TAG --tab02
FROM T_SAL_CUSTMATMAPPINGENTRY_L L INNER JOIN T_SAL_CUSTMATMAPPINGENTRY ENTRY ON L.FENTRYID = ENTRY.FENTRYID INNER JOIN T_SAL_CUSTMATMAPPING HEAD ON ENTRY.FID = HEAD.FID INNER JOIN T_SAL_CUSTMATMAPPING_ISSUE ISSUE ON ISSUE.FID = HEAD.FID INNER JOIN T_SAL_MULCUSTMATMAPPING MCM ON HEAD.FID = MCM.FID INNER JOIN T_BD_CUSTOMER CUST ON CUST.FCUSTID = MCM.FMULCUSTOMERID','--TAG',@SQL_CUST)
EXEC(@CREATEVIEW_SQL);
PRINT('视图V_SAL_CUSTMATMAPPING_L已重建!');
GO
/*重建实体表*/
--重建前备份历史数据
DECLARE @BAKSQL01 VARCHAR(255),@BAKSQL02 VARCHAR(255)
SET @BAKSQL01 = 'SELECT * INTO '+'T_V_SAL_CUSTMATMAPPING_SQLBAK_'
+ REPLACE(SUBSTRING(CONVERT(NVARCHAR,GETDATE(),121),1,10),'-','')+'_'+REPLACE(SUBSTRING(CONVERT(NVARCHAR,GETDATE(),121),12,8),':','')+' FROM T_V_SAL_CUSTMATMAPPING'
SET @BAKSQL02 = 'SELECT * INTO '+'T_V_SAL_CUSTMATMAPPING_L_SQLBAK_'
+ REPLACE(SUBSTRING(CONVERT(NVARCHAR,GETDATE(),121),1,10),'-','')+'_'+REPLACE(SUBSTRING(CONVERT(NVARCHAR,GETDATE(),121),12,8),':','')+' FROM T_V_SAL_CUSTMATMAPPING_L'
EXEC(@BAKSQL01)
EXEC(@BAKSQL02)
PRINT('5 历史数据备份完成!')
--SELECT name,create_date FROM SYS.ALL_OBJECTS WHERE NAME LIKE 'T_V_SAL_CUSTMATMAPPING%' AND NAME LIKE '%SQLBAK%'
--实体表
DROP TABLE T_V_SAL_CUSTMATMAPPING;
SELECT * INTO T_V_SAL_CUSTMATMAPPING FROM V_SAL_CUSTMATMAPPING;
PRINT('6 实体表重建完成!')
--多语言
DROP TABLE T_V_SAL_CUSTMATMAPPING_L;
SELECT * INTO T_V_SAL_CUSTMATMAPPING_L FROM V_SAL_CUSTMATMAPPING_L;
PRINT('7 多语言表重建完成!')
/*补充索引和主键*/
ALTER TABLE T_V_SAL_CUSTMATMAPPING ALTER COLUMN FID VARCHAR(323) NOT NULL;
go
ALTER TABLE T_V_SAL_CUSTMATMAPPING ADD CONSTRAINT PK_T_V_SAL_CUSTMATMAPPING PRIMARY KEY (FID);
CREATE NONCLUSTERED INDEX [IDX_TV_CUSTMATMAPPING_CUST] ON [dbo].[T_V_SAL_CUSTMATMAPPING]
( [fcustomerid] ASC)
CREATE NONCLUSTERED INDEX [IDX_TV_CUSTMATMAPPING_MAT] ON [dbo].[T_V_SAL_CUSTMATMAPPING]
( [FMATERIALID] ASC)
CREATE NONCLUSTERED INDEX [IDX_TV_CUSTMATMAPPING_NO] ON [dbo].[T_V_SAL_CUSTMATMAPPING]
( [fnumber] ASC)
CREATE NONCLUSTERED INDEX [IDX_TV_CUSTMATMAPPING_L_FID] ON [dbo].[T_V_SAL_CUSTMATMAPPING_L]
( [fid] ASC)
PRINT('8 补充索引和主键完成!')
```