declare @s varchar(100) select @s=列 from 表 where ..... print @s
我將你的複製了下. 很好的declare @s varchar(100) select top 1 @s=name from sysobjects print @s-- 結果 sysobjects我極度的懷疑 你的打印機有 毛病!
DELETE ECOM_Department GOSET IDENTITY_INSERT ECOM_Department ONDECLARE @ID INT DECLARE @Name VARCHAR(64) DECLARE @Parent_Code VARCHAR(64) DECLARE @InputCode VARCHAR(64)DECLARE A_Cursor CURSOR FOR SELECT [id],[Name],[Parent_Code],[InputCode] FROM [eris32db].[dbo].[ECOM_Department] OPEN A_Cursor FETCH A_Cursor INTO @ID,@Name,@Parent_Code,@InputCodeWHILE (@@fetch_status=0) BEGIN
DECLARE @PID INT DECLARE GetPID CURSOR FOR SELECT eris.[id] FROM [eris32db].[dbo].[ECOM_Department] AS eris WHERE eris.[Code] = @Parent_Code
OPEN GetPID FETCH NEXT FROM GetPID into @PID WHILE(@@fetch_status = 0) BEGIN INSERT INTO [ECOMHealth].[dbo].[ECOM_Department]([id],[Name],[Parent_id],[InputCode]) VALUES(@ID,@Name,@PID,@InputCode) END
CLOSE GetPID DEALLOCATE GetPID
END CLOSE A_Cursor DEALLOCATE A_Cursor GOSET IDENTITY_INSERT ECOM_Department OFF GO 大家帮忙看看吧,我都急傻了,半天不明白那里错了,想要print 看看中间结果也不可以,我初来砸到,大家多帮棒我
DELETE ECOM_Department GOSET IDENTITY_INSERT ECOM_Department ONDECLARE @ID INT DECLARE @Name VARCHAR(64) DECLARE @Parent_Code VARCHAR(64) DECLARE @InputCode VARCHAR(64)DECLARE A_Cursor CURSOR FOR SELECT [id],[Name],[Parent_Code],[InputCode] FROM [eris32db].[dbo].[ECOM_Department] OPEN A_Cursor FETCH A_Cursor INTO @ID,@Name,@Parent_Code,@InputCodeWHILE (@@fetch_status=0) BEGIN
DECLARE @PID INT DECLARE GetPID CURSOR FOR SELECT eris.[id] FROM [eris32db].[dbo].[ECOM_Department] AS eris WHERE eris.[Code] = @Parent_Code
OPEN GetPID FETCH NEXT FROM GetPID into @PID WHILE(@@fetch_status = 0) BEGIN INSERT INTO [ECOMHealth].[dbo].[ECOM_Department]([id],[Name],[Parent_id],[InputCode]) VALUES(@ID,@Name,@PID,@InputCode) END
CLOSE GetPID DEALLOCATE GetPID --少了一句 FETCH A_Cursor INTO @ID,@Name,@Parent_Code,@InputCode
END CLOSE A_Cursor DEALLOCATE A_Cursor GOSET IDENTITY_INSERT ECOM_Department OFF GO
--如果要先清空表: ECOMHealth,则执行下面这句 delete [ECOMHealth].[dbo].[ECOM_Department] go--复制数据 set identity_insert [ECOMHealth].[dbo].[ECOM_Department] on INSERT [ECOMHealth].[dbo].[ECOM_Department]([id],[Name],[Parent_id],[InputCode]) SELECT [id],[Name],[Parent_Code],[InputCode] FROM [eris32db].[dbo].[ECOM_Department]
关键,新表里面的parent_id的值不能是#42#43# ,直接为ID 就行了
set identity_insert [ECOMHealth].[dbo].[ECOM_Department] on INSERT [ECOMHealth].[dbo].[ECOM_Department]([id],[Name],[Parent_id],[InputCode]) SELECT [id],[Name],[id],[InputCode] FROM [eris32db].[dbo].[ECOM_Department]
select @s=列 from 表 where .....
print @s
很好的declare @s varchar(100)
select top 1 @s=name from sysobjects
print @s-- 結果
sysobjects我極度的懷疑 你的打印機有 毛病!
GOSET IDENTITY_INSERT ECOM_Department ONDECLARE @ID INT
DECLARE @Name VARCHAR(64)
DECLARE @Parent_Code VARCHAR(64)
DECLARE @InputCode VARCHAR(64)DECLARE A_Cursor CURSOR FOR
SELECT [id],[Name],[Parent_Code],[InputCode]
FROM [eris32db].[dbo].[ECOM_Department]
OPEN A_Cursor
FETCH A_Cursor INTO @ID,@Name,@Parent_Code,@InputCodeWHILE (@@fetch_status=0)
BEGIN
DECLARE @PID INT
DECLARE GetPID CURSOR FOR
SELECT eris.[id] FROM [eris32db].[dbo].[ECOM_Department] AS eris
WHERE eris.[Code] = @Parent_Code
OPEN GetPID
FETCH NEXT FROM GetPID into @PID
WHILE(@@fetch_status = 0)
BEGIN
INSERT INTO [ECOMHealth].[dbo].[ECOM_Department]([id],[Name],[Parent_id],[InputCode])
VALUES(@ID,@Name,@PID,@InputCode)
END
CLOSE GetPID
DEALLOCATE GetPID
END
CLOSE A_Cursor
DEALLOCATE A_Cursor
GOSET IDENTITY_INSERT ECOM_Department OFF
GO
大家帮忙看看吧,我都急傻了,半天不明白那里错了,想要print 看看中间结果也不可以,我初来砸到,大家多帮棒我
GOSET IDENTITY_INSERT ECOM_Department ONDECLARE @ID INT
DECLARE @Name VARCHAR(64)
DECLARE @Parent_Code VARCHAR(64)
DECLARE @InputCode VARCHAR(64)DECLARE A_Cursor CURSOR FOR
SELECT [id],[Name],[Parent_Code],[InputCode]
FROM [eris32db].[dbo].[ECOM_Department]
OPEN A_Cursor
FETCH A_Cursor INTO @ID,@Name,@Parent_Code,@InputCodeWHILE (@@fetch_status=0)
BEGIN
DECLARE @PID INT
DECLARE GetPID CURSOR FOR
SELECT eris.[id] FROM [eris32db].[dbo].[ECOM_Department] AS eris
WHERE eris.[Code] = @Parent_Code
OPEN GetPID
FETCH NEXT FROM GetPID into @PID
WHILE(@@fetch_status = 0)
BEGIN
INSERT INTO [ECOMHealth].[dbo].[ECOM_Department]([id],[Name],[Parent_id],[InputCode])
VALUES(@ID,@Name,@PID,@InputCode)
END
CLOSE GetPID
DEALLOCATE GetPID --少了一句
FETCH A_Cursor INTO @ID,@Name,@Parent_Code,@InputCode
END
CLOSE A_Cursor
DEALLOCATE A_Cursor
GOSET IDENTITY_INSERT ECOM_Department OFF
GO
id , Code ,Name , Parent_id,Parent_Code ,StaffCount,InputCode
____________________________________________________________________
41 , 001 , 一号科室 , # , , 0 , FSK
42 , 002 , 二号科室 , # , , 0 , CSK
43 , 003 , 三号科室 , #42# , 002 , 0 , NJS
44 , 004 , 四号科室 , #42#43# , 003 , 0 , FSK
delete [ECOMHealth].[dbo].[ECOM_Department]
go--复制数据
set identity_insert [ECOMHealth].[dbo].[ECOM_Department] on
INSERT [ECOMHealth].[dbo].[ECOM_Department]([id],[Name],[Parent_id],[InputCode])
SELECT [id],[Name],[Parent_Code],[InputCode]
FROM [eris32db].[dbo].[ECOM_Department]
INSERT [ECOMHealth].[dbo].[ECOM_Department]([id],[Name],[Parent_id],[InputCode])
SELECT [id],[Name],[id],[InputCode]
FROM [eris32db].[dbo].[ECOM_Department]
新表里面的parent_id的值不能是#42#43# ,
它去找parent_code为003code的纪录的ID
--少了一句
FETCH A_Cursor INTO @ID,@Name,@Parent_Code,@InputCode
我想知道这句话放在哪里是起到什么作用的,谢谢,
谢谢大哥,我比较笨的拉