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

2016-01-29 16:43 7 1 收藏

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

【 tulaoshi.com - SQLServer 】

 通过使用这个存储过程,你就可以方便的对数据库中具有一定规则的或者全部表,对这里的字段进行各种操作,具体看示例!
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

来源:http://www.tulaoshi.com/n/20160129/1499382.html

延伸阅读
标签: excel
Excel如何多行或多列批量求和   在日常工作中许多朋友在制作一些数据表格的时候经常会用到公式运算,其中包括了将多个表格中的数据相加求和。 操作步骤 第一步、准备将下图中的A列数据与B列中的数据相加求和,结果将显示在C列中。 第二步、需要将A1与B1两个单元格相加求和。选中C1单元格,在编辑栏中输入=A1+B1...
标签: 电脑入门
通过单击Excel窗口底部的工作表(工作表:在 Excel 中用于存储和处理数据的主要文档。也称为电子表格。工作表由排列成行或列的单元格组成。工作表总是存储在工作簿中。)标签,可以快速选择不同的工作表。如果要同时在几个工作表中输入或编辑数据,可以通过选择多个工作表组合工作表。还可以同时对选中的多个工作表进行格式设置或打印。 选...
标签: ASP
  一、问题的提出     最近一个项目中遇到ASP对FoxPro库表(*.DBF)的操作问题。现实中确有许多应用软件使用DBF表,如何在网络环境中使用这些数据,使很多朋友一筹莫展。     本人也查了许多资料,没有找到解决方法的详细说明。经过试验,初步解决了这个问题,拿出来和大家分享。     本文试...
标签: 电脑入门
朋友间的邮件往来,你喜欢更亲密的昵称。 求职或工作邮件,正式的发信昵称显得更专业。 既然如此,不妨试试在QQ邮箱的帐户管理中, 给每一个邮箱帐号设置不同的发信昵称。 在发信时选择不同的帐号及对应昵称,满足你不同场合的需要。
Windows 操作系统的注册表包含了很多有关计算机运行的配置方式,打开注册表我们可以看到注册表是按类似于目录的树结构组织的,其中第二级目录包含了五个预定义主键分别是:HKEY_CLASSES_ROOT,HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USERS,HKEY_CURRENT_CONFIG。 下面我们来分别解释这5个类的作用 HKEY_CLASSES_ROOT该主键包...

经验教程

699

收藏

58
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部