34,590
社区成员
发帖
与我相关
我的任务
分享
------------------------------------------------
-- Author : liangCK 小梁
-- Comment: 小梁 爱 兰儿
-- Date : 2008-10-17 18:58:34
------------------------------------------------
--> 生成测试数据: [PQ_HrIa]
IF OBJECT_ID('[PQ_HrIa]') IS NOT NULL DROP TABLE [PQ_HrIa]
CREATE TABLE [PQ_HrIa] (PQ_HrIatotal SQL_VARIANT,PQ_HrIa0 SQL_VARIANT,PQ_HrIa1 SQL_VARIANT,PQ_HrIa2 SQL_VARIANT,PQ_HrIa31 SQL_VARIANT)
--SQL查询如下:
DECLARE @old_name VARCHAR(256),@new_name VARCHAR(20);
DECLARE cur CURSOR FOR
SELECT name AS old_name,
REPLACE(name,'PQ_HrIa','PQ_HrIb') AS new_name
FROM syscolumns AS c
WHERE id = OBJECT_ID('PQ_HrIa')
AND name LIKE '%PQ_HrIa%';
OPEN cur;
FETCH NEXT FROM cur INTO @old_name,@new_name;
WHILE @@FETCH_STATUS=0
BEGIN
EXEC('EXEC sp_rename ''PQ_HrIa.' + @old_name + ''',''' + @new_name + ''',''COLUMN''');
FETCH NEXT FROM cur INTO @old_name,@new_name;
END
CLOSE cur;
DEALLOCATE cur;
SELECT * FROM PQ_HrIa
--5楼的漏了一句。
declare @sql varchar(8000),@name varchar(100)
declare tc cursor for
select name from syscolumns where id=object_id('PQ_HrIa')
open tc
fetch next from tc into @name
while @@fetch_status=0
begin
set @sql='exec sp_rename ''PQ_HrIa.'+@name+''' , '''+replace(@name,'a','b')+''',''COLUMN'''
exec(@sql)
--add*************************
fetch next from tc into @name
end
close tc
deallocate tc
declare @sql varchar(8000),@name varchar(100)
declare tc cursor for
select name from syscolumns where id=object_id('PQ_HrIa')
open tc
fetch next from tc into @name
while @@fetch_status=0
begin
set @sql='exec sp_rename ''PQ_HrIa.'+@name+''' , '''+replace(@name,'a','b')+''',''COLUMN'''
exec(@sql)
end
close tc
deallocate tc
DECLARE @old_name VARCHAR(256),@new_name VARCHAR(20);
DECLARE cur CURSOR FOR
SELECT name AS old_name,
REPLACE(name,'PQ_HrIa','PQ_HrIb') AS new_name
FROM syscolumns AS c
WHERE id = OBJECT_ID('PQ_HrIa')
AND name LIKE '%PQ_HrIa%';
OPEN cur;
FETCH NEXT FROM cur INTO @old_name,@new_name;
WHILE @@FETCH_STATUS=0
BEGIN
EXEC('EXEC sp_rename ''PQ_HrIa.' + @old_name + ''',''' + @new_name + ''',''COLUMN''');
FETCH NEXT FROM cur INTO @name;
END
CLOSE cur;
DEALLOCATE cur;
服务器: 消息 156,级别 15,状态 1,行 3
在关键字 'cursor' 附近有语法错误。
服务器: 消息 137,级别 15,状态 1,行 9
必须声明变量 '@@status'。
declare @sql varchar(8000),@name varchar(100)
declare tc cursor for
select name from syscolumns where id=object_id('PQ_HrIa')
open tc
fetch next from tc into @name
while @@fetch_status=0
begin
set @sql='exec sp_rename ''PQ_HrIa.'+@name+''' , '''+replace(@name,'a','b')+''',''COLUMN'''
exec(@sql)
end
close tc
deallocate tc