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

2016-01-29 16:43 2 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

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

延伸阅读
Windows 操作系统的注册表包含了很多有关计算机运行的配置方式,打开注册表我们可以看到注册表是按类似于目录的树结构组织的,其中第二级目录包含了五个预定义主键分别是:HKEY_CLASSES_ROOT,HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USERS,HKEY_CURRENT_CONFIG。 下面我们来分别解释这5个类的作用 HKEY_CLASSES_ROOT该主键包...
标签: 办公软件
在使用Word时,为了便于集中编辑或浏览,可以同时打开多个文档,下面就介绍几种方法。 (1)在资料管理器中,选中要打开的多个WORD文档,按下回车键,系统会自动启动WORD97/2000,并将所选文档全部打开。在选择文档时,如果是要选中多个连续文档,可以按下Shift键再用鼠标单击相应的文件名;如果要选中多个不连续文档,就按下Ctrl键再...
VC++ 中对注册表的操作 作者:lixiaosan 日期:04/29/2006 这里只是对注册表的几个api函数的使用简介。在MFC中,你可以使用CRegKey类操作注册表,关于CRegKey类在这里就不做介绍了,可以参考msdn。 以下代码实现了在HKEY_LOCAL_MACHINE的SOFTWARE下打开MyProgram键,如果MyProgram不存在,则创建之,存在则进行查询  HKEY hKEY;  ...
标签: ASP
  一、问题的提出     最近一个项目中遇到ASP对FoxPro库表(*.DBF)的操作问题。现实中确有许多应用软件使用DBF表,如何在网络环境中使用这些数据,使很多朋友一筹莫展。     本人也查了许多资料,没有找到解决方法的详细说明。经过试验,初步解决了这个问题,拿出来和大家分享。     本文试...
标签: excel
Excel如何多行或多列批量求和   在日常工作中许多朋友在制作一些数据表格的时候经常会用到公式运算,其中包括了将多个表格中的数据相加求和。 操作步骤 第一步、准备将下图中的A列数据与B列中的数据相加求和,结果将显示在C列中。 第二步、需要将A1与B1两个单元格相加求和。选中C1单元格,在编辑栏中输入=A1+B1...

经验教程

107

收藏

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