如何同时对多个表或列操作

山药馍馍

山药馍馍

2016-01-29 16:43

如何同时对多个表或列操作,如何同时对多个表或列操作
 通过使用这个存储过程,你就可以方便的对数据库中具有一定规则的或者全部表,对这里的字段进行各种操作,具体看示例!
CREATE PROCEDURE SP_execSQLonDB
 (@TABLENAME VARCHAR(50),        --表名条件
  @COLUMNNAME VARCHAR(50),       --字段条件
  @SQL NVARCHAR(4000),           --执行的SQL
  @INCLUDE_NTI CHAR(1) = ’N’)    --是否包含Text,NText,Image数据类型
AS 
BEGIN
 --Variable Declaration 
 --变量定义
 DECLARE @strSQL NVARCHAR(4000)
 DECLARE @SQL2 NVARCHAR(4000)
 DECLARE @sTableName VARCHAR(200)
 DECLARE @sColumnName VARCHAR(200)
DECLARE @SQLTemp NVARCHAR(4000)
 --Check whether to include TEXT, NTEXT, IMAGE data types
 --检查是否需要包含 Text,NText,Image数据类型
 SET @INCLUDE_NTI = UPPER(LTRIM(RTRIM(@INCLUDE_NTI)))
 IF @INCLUDE_NTI NOT IN (’N’, ’Y’)
  SET @INCLUDE_NTI = ’N’
 --Construct a cursor to get the list of Table/Column Names according to the @TABLENAME and @COLUMNNAME parameters.
 --创建一个游标来读取表名和列名的列表,这里列表由参数@TABLENAME 和 @COLUMNNAME 决定
 SET @strSQL = N’DECLARE TabColCursor CURSOR FOR SELECT RTRIM(LTRIM(SU.name)) + ’’.’’ + LTRIM(RTRIM(SO.name)), SC.name FROM sysobjects SO INNER JOIN syscolumns SC ON SO.id = SC.id INNER JOIN sysusers SU ON SO.uid = SU.uid WHERE SO.xtype = ’’U’’ ’
 --Filter out Text/NText/Image data types if it is not included
 --假如不包含Text/NText/Image数据类型,把他们过滤掉
 IF @INCLUDE_NTI = ’N’ 
  --In SysColumns sytem table XTYPE column corresponds to Column Data Type
  SET @strSQL = @strSQL + ’ AND SC.xtype NOT IN (35, 99, 34) ’
 --Add the TABLE(S) name i.e. filter if it is supplied
 --假如有提供表名参数,把它写入过滤条件中
 IF @TABLENAME IS NOT NULL AND ltrim(rtrim(@TABLENAME)) < ’’
 BEGIN
  SET @TABLENAME = REPLACE(@TABLENAME, ’, ’, ’,’)
  SET @strSQL = @strSQL + ’ AND (SO.name LIKE ’’’ + REPLACE(@TABLENAME, ’,’, ’’’ OR SO.name LIKE ’’’) + ’’’)’
  SET @SQLTemp= ’ AND (SO.name LIKE ’’’ + REPLACE(@TABLENAME, ’,’, ’’’ OR SO.name LIKE ’’’) + ’’’)’
 END
 --Add the COLUMN(S) name i.e. filter if it is supplied
 --假如有提供列名参数,把它写入过滤条件中
 IF @COLUMNNAME IS NOT NULL AND ltrim(rtrim(@COLUMNNAME)) < ’’
 BEGIN
  SET @COLUMNNAME = REPLACE(@COLUMNNAME, ’, ’, ’,’)
  SET @strSQL = @strSQL + ’ AND (SC.name LIKE ’’’ + REPLACE(@COLUMNNAME, ’,’, ’’’ OR SC.name LIKE ’’’) + ’’’)’
 END
展开更多 50%)
分享

猜你喜欢

如何同时对多个表或列操作

SQLServer
如何同时对多个表或列操作

iPhone或iPad上不越狱同时关闭多个应用

iphone iPhone 5s iPhone 6 iphone刷机
iPhone或iPad上不越狱同时关闭多个应用

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

excel工作表的行或列怎么自动求和?

excel
excel工作表的行或列怎么自动求和?

在PS中如何同时选择多个图层

软件教程 PS
在PS中如何同时选择多个图层

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

安卓手机如何同时登录多个QQ?

Android
安卓手机如何同时登录多个QQ?

PowerPoint多个对象同时动作

电脑网络
PowerPoint多个对象同时动作

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

关于SQL Server 2000的安全配置

关于SQL Server 2000的安全配置

《植物大战僵尸2》中文版无限刷雪人攻略

《植物大战僵尸2》中文版无限刷雪人攻略
下拉加载更多内容 ↓