Pd 到数据库的转化

 

CREATE PROCEDURE PRO_SQLSERVER_PD  @ls_tablename VARCHAR(50) AS

 

DECLARE @ID INT

 

/*

描述:将pb的系统表pbcattbl和pbcatcol的id字段更新,从sqlserver反向导入pd中时可以导入中文字段

时间:07/04/24

*/

 

 

BEGIN TRANSACTION

DECLARE COLUMNS_CURSOR CURSOR FOR

 

SELECT id ,name  FROM sysobjects  WITH(NOLOCK)  where xtype='u' and (name=@ls_tablename  or @ls_tablename='')

OPEN  COLUMNS_CURSOR

FETCH NEXT FROM COLUMNS_CURSOR INTO  @ID,@ls_tablename

WHILE @@FETCH_STATUS = 0

BEGIN

UPDATE  pbcattbl set pbt_tid  =@id   where pbt_tnam =@ls_tablename

 

IF @@ERROR<>0

BEGIN

ROLLBACK

RAISERROR('出现错误1',11,1)

RETURN

END

UPDATE  pbcatcol set pbc_tid  =@id where pbc_tnam =@ls_tablename

IF @@ERROR<>0

BEGIN

ROLLBACK

RAISERROR('出现错误2',11,1)

RETURN

END

 

 

SELECT NO1 = IDENTITY(int,1,1),SYSCOLUMNS.*  INTO #TEMP FROM SYSCOLUMNS WHERE ID =@ID

 

UPDATE pbcatcol SET PBC_CID =NO1  FROM #TEMP,pbcatcol  WHERE #TEMP.NAME =PBC_CNAM AND PBC_TNAM =@ls_tablename

IF @@ERROR<>0

BEGIN

ROLLBACK

RAISERROR('出现错误3',11,1)

RETURN

END

DROP TABLE  #TEMP

FETCH NEXT  FROM COLUMNS_CURSOR INTO  @ID,@ls_tablename

 

END

CLOSE COLUMNS_CURSOR

DEALLOCATE COLUMNS_CURSOR

COMMIT

GO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值