------游标
declare
@name varchar(10), ----表名
@bm_name varchar(10), ----更新值
@bm1 varchar(10), ----字段
@sql nvarchar(4000) ----语句
set @bm_name='kkk' ----更新值
set @bm1='bm_name' ----字段 declare kk cursor for
select
+ quotename(user_name(uid))
-- + quotename(schema_name(uid)) -- 如果你的版本是sql 2005, 则把上面那句注释掉, 用这句代替
+ '.' + quotename(name)
from sysobjects
where id in (select id from syscolumns where name=@bm1)
and objectproperty(id, 'isusertable')=1
open kk
fetch next from kk into @name
while @@fetch_status=0
begin
set @sql='update '+ @name +' set '+@bm1+'=@bm_name where bm_no=''01'''----更新语句+条件
exec sp_executesql @sql, N'@bm_name varchar(10)', @bm_name
fetch next from kk into @name
end
close kk
deallocate kk
declare
@name varchar(10), ----表名
@bm_name varchar(10), ----更新值
@bm1 varchar(10), ----字段
@sql nvarchar(4000) ----语句
set @bm_name='kkk' ----更新值
set @bm1='bm_name' ----字段 declare kk cursor for
select
+ quotename(user_name(uid))
-- + quotename(schema_name(uid)) -- 如果你的版本是sql 2005, 则把上面那句注释掉, 用这句代替
+ '.' + quotename(name)
from sysobjects
where id in (select id from syscolumns where name=@bm1)
and objectproperty(id, 'isusertable')=1
open kk
fetch next from kk into @name
while @@fetch_status=0
begin
set @sql='update '+ @name +' set '+@bm1+'=@bm_name where bm_no=''01'''----更新语句+条件
exec sp_executesql @sql, N'@bm_name varchar(10)', @bm_name
fetch next from kk into @name
end
close kk
deallocate kk
declare
@name varchar(20), ----表名
@bm_name varchar(20), ----更新值
@bm1 varchar(20), ----字段
@sql nvarchar(4000) ----语句
set @bm_name='old' ----更新值
set @bm1='cPsn_Num' ----字段 declare kk cursor for
select
+ quotename(user_name(uid))
-- + quotename(schema_name(uid)) -- 如果你的版本是sql 2005, 则把上面那句注释掉, 用这句代替
+ '.' + quotename(name)
from sysobjects
where id in (select id from syscolumns where name=@bm1)
and objectproperty(id, 'isusertable')=1
open kk
fetch next from kk into @name
while @@fetch_status=0
begin
set @sql='update '+ @name +' set '+@bm1+'=@bm_name where cPsn_Num=''new'''----更新语句+条件
exec sp_executesql @sql, N'@bm_name varchar(10)', @bm_name
fetch next from kk into @name
end
close kk
deallocate kk错误:
服务器: 消息 105,级别 15,状态 1,行 1
字符串 'HR_WA_FieldSh set cPsn_Num=@bm_name where cPsn_Num='new'' 之前有未闭合的引号。
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'HR_WA_FieldSh set cPsn_Num=@bm_name where cPsn_Num='new'' 附近有语法错误。(所影响的行数为 0 行)服务器: 消息 105,级别 15,状态 1,行 1
字符串 'hr_hi_jobInfo set cPsn_Num=@bm_name where cPsn_Num='new'' 之前有未闭合的引号。
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'hr_hi_jobInfo set cPsn_Num=@bm_name where cPsn_Num='new'' 附近有语法错误。
服务器: 消息 105,级别 15,状态 1,行 1
字符串 'hr_wa_pay_tem set cPsn_Num=@bm_name where cPsn_Num='new'' 之前有未闭合的引号。
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'hr_wa_pay_tem set cPsn_Num=@bm_name where cPsn_Num='new'' 附近有语法错误。
服务器: 消息 105,级别 15,状态 1,行 1
字符串 'hr_hi_langSki set cPsn_Num=@bm_name where cPsn_Num='new'' 之前有未闭合的引号。
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'hr_hi_langSki set cPsn_Num=@bm_name where cPsn_Num='new'' 附近有语法错误。
服务器: 消息 105,级别 15,状态 1,行 1
字符串 'hr_wa_paychan set cPsn_Num=@bm_name where cPsn_Num='new'' 之前有未闭合的引号。
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'hr_wa_paychan set cPsn_Num=@bm_name where cPsn_Num='new'' 附近有语法错误。
服务器: 消息 105,级别 15,状态 1,行 1
字符串 'hr_hi_partjob set cPsn_Num=@bm_name where cPsn_Num='new'' 之前有未闭合的引号。
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'hr_hi_partjob set cPsn_Num=@bm_name where cPsn_Num='new'' 附近有语法错误。(所影响的行数为 0 行)
(所影响的行数为 0 行)服务器: 消息 105,级别 15,状态 1,行 1
字符串 'hr_hi_paychan set cPsn_Num=@bm_name where cPsn_Num='new'' 之前有未闭合的引号。
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'hr_hi_paychan set cPsn_Num=@bm_name where cPsn_Num='new'' 附近有语法错误。(所影响的行数为 0 行)
(所影响的行数为 0 行)服务器: 消息 105,级别 15,状态 1,行 1
字符串 'hr_wm_docu_wm set cPsn_Num=@bm_name where cPsn_Num='new'' 之前有未闭合的引号。
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'hr_wm_docu_wm set cPsn_Num=@bm_name where cPsn_Num='new'' 附近有语法错误。
服务器: 消息 105,级别 15,状态 1,行 1
字符串 'hr_wm_docu_wm set cPsn_Num=@bm_name where cPsn_Num='new'' 之前有未闭合的引号。
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'hr_wm_docu_wm set cPsn_Num=@bm_name where cPsn_Num='new'' 附近有语法错误。
服务器: 消息 105,级别 15,状态 1,行 1
字符串 'hr_wm_docu_wm set cPsn_Num=@bm_name where cPsn_Num='new'' 之前有未闭合的引号。
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'hr_wm_docu_wm set cPsn_Num=@bm_name where cPsn_Num='new'' 附近有语法错误。
服务器: 消息 105,级别 15,状态 1,行 1
字符串 'hr_wm_docu_wm set cPsn_Num=@bm_name where cPsn_Num='new'' 之前有未闭合的引号。
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'hr_wm_docu_wm set cPsn_Num=@bm_name where cPsn_Num='new'' 附近有语法错误。
服务器: 消息 105,级别 15,状态 1,行 1
字符串 'hr_wm_docu_wm set cPsn_Num=@bm_name where cPsn_Num='new'' 之前有未闭合的引号。
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'hr_wm_docu_wm set cPsn_Num=@bm_name where cPsn_Num='new'' 附近有语法错误。
服务器: 消息 105,级别 15,状态 1,行 1
字符串 'hr_hi_person_ set cPsn_Num=@bm_name where cPsn_Num='new'' 之前有未闭合的引号。
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'hr_hi_person_ set cPsn_Num=@bm_name where cPsn_Num='new'' 附近有语法错误。
服务器: 消息 105,级别 15,状态 1,行 1
字符串 'hr_hi_probati set cPsn_Num=@bm_name where cPsn_Num='new'' 之前有未闭合的引号。
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'hr_hi_probati set cPsn_Num=@bm_name where cPsn_Num='new'' 附近有语法错误。(所影响的行数为 0 行)
DECLARE
@name sysname, --表名
@bm_name varchar(2000), --更新值
@bm1 sysname, --字段
@sql nvarchar(4000) --语句
SELECT
@bm_name='old', --更新值
@bm1='cPsn_Num' --字段 DECLARE tb CURSOR FOR
SELECT
+ QUOTENAME(USER_NAME(uid))
-- + QUOTENAME(SCHEMA_NAME(uid)) -- 如果你的版本是sql 2005, 则把上面那句注释掉, 用这句代替
+ '.' + QUOTENAME(name)
FROM sysobjects
WHERE id IN (SELECT id FROM syscolumns WHERE name=@bm1)
AND OBJECTPROPERTY(id, 'IsUserTable')=1
OPEN tb
FETCH NEXT FROM tb INTO @name
WHILE @@FETCH_STATUS=0
BEGIN
SET @sql='UPDATE '+ @name +' SET '+@bm1+' = @bm_name WHERE cPsn_Num=''new'''----更新语句+条件
EXEC sp_executesql @sql, N'@bm_name varchar(2000)', @bm_name FETCH NEXT FROM tb INTO @name
END
CLOSE tb
DEALLOCATE tb