其实很简单,相对于SQL 2000改了sys.all_objects和sys.columns
declare @tblname varchar(200)
declare @object_id int
declare tbl_cursor CURSOR for
select name,object_id from sys.all_objects where type='u'
open tbl_cursor
FETCH NEXT FROM tbl_cursor
INTO @tblname,@object_id
while @@FETCH_STATUS = 0
Begin
declare @str varchar(8000)
declare @selectstr varchar(2000)
set @selectstr=''
set @str='INSERT INTO '+ @tblname +'('
--print @tblname,@object_id
declare @colname varchar(200)
declare col_cursor CURSOR for
select name from sys.columns where object_id=@object_id order by column_id
open col_cursor
FETCH NEXT FROM col_cursor INTO @colname
WHILE @@FETCH_STATUS = 0
BEGIN
set @str=@str+@colname+','
--Print @str
set @selectstr=@selectstr+@colname+','
--Print @colname
FETCH NEXT FROM col_cursor INTO @colname
END
close col_cursor
deallocate col_cursor
set @str=substring(@str,0,len(@str))
set @selectstr=substring(@selectstr,0,len(@selectstr))
set @str=@str+') SELECT ' + @selectstr +' FROM '+ @tblname
Print @str
fetch next from tbl_cursor into @tblname,@object_id
End
close tbl_cursor
deallocate tbl_cursor
本文转载自:
http://blog.csdn.net/lihonggen0/archive/2008/10/27/3155755.aspx
分享到:
相关推荐
sqlserver 循环临时表插入数据到另一张表 -- 声明变量 DECLARE @SupCode as varchar(100), @ProdCode as varchar(50), @PackLayer as varchar(50), @CodeStatus as varchar(50), @ProductId as varchar(50), @...
这里的`@fields`是一个包含字段名和类型的集合,循环遍历并构造SQL语句,最后执行生成的SQL创建表。 接下来,我们来看`createTable.sql`文件,这很可能包含了动态创建表的完整SQL脚本。它可能包括了获取表结构信息...
SQL 数据表列转换为一行 在数据库管理中,经常会遇到将...这个示例展示了如何使用存储过程、临时表、动态 SQL 语句、 WHILE 循环、CALL 语句、ALTER TABLE 语句和 UPDATE 语句来将 SQL 数据表的一列转换为一行多列。
1. **动态构建SELECT子句**:通过循环遍历`CodeA`和`CodeB`的所有可能组合,构建出对应的聚合查询字段。 2. **处理聚合逻辑**:对于每个`CodeA`和`CodeB`的组合,使用`CASE WHEN`语句来确定哪些记录会被计算总和。 3...
本例中的两个`WHILE`循环分别实现了外层循环(控制行数)和内层循环(控制每行中的列数)。具体如下: - **外层循环**:`@i ,表示乘法表的最大行数为9。 - **内层循环**:`@j ,表示每行的列数逐渐增加,直至当前...
sqlserver九九乘法表,使用whlie循环语句实现九九乘法表
这涉及到列选择、表连接、聚合函数以及WHERE子句的使用,这些都是进行数据查询的基本元素。 接下来,书中会讲解INSERT、UPDATE和DELETE语句,这些是用于管理数据库中数据的操作语句。掌握这些语句,可以让读者对...
为了存储所有的双色球组合,首先需要创建一个表`T_SSQ`,该表包含7列,分别对应六个红球和一个蓝球。表结构创建代码如下: ```sql CREATE TABLE T_SSQ ( RED1 NUMBER, RED2 NUMBER, RED3 NUMBER, RED4 NUMBER, ...
通过访问系统表`sys.columns`和`sys.objects`,我们可以获取到所有表的信息以及它们的列信息。然后,利用这些信息构造动态SQL语句,执行这些语句就可以找到指定值出现的位置。 #### 三、实现步骤 1. **定义变量**:...
此描述进一步明确了目标是使用标准SQL语法来实现交叉表的功能,即在一个表格中,行和列的数据可以相互转换,形成类似透视的效果。 #### 知识点详解 ### 一、创建临时表并填充数据 ```sql CREATE TABLE #result ( ...
- **动态拼接 SQL**:通过循环遍历 `course` 表,将每门课程的名字动态添加到 `@sql` 变量中,形成一个包含多个 `CASE` 表达式的 SQL 语句。 - **执行动态 SQL**:使用 `EXEC` 执行最终构建好的 SQL 语句。 #### 五...
在SQL中,动态生成日期列是一项常见的需求,特别是在数据分析和报表生成时。这个场景中,我们需要根据输入的日期区间,比如"2015-08"到"2016-02",生成相应的日期列,并进行统计。下面我们将深入探讨如何实现这一...
在SQL Server 2008中,SELECT语句是数据查询的基础,它允许用户从一个或多个表中选择特定的行和列。书中可能涵盖了WHERE子句、聚合函数(如COUNT、SUM、AVG等)、GROUP BY和HAVING子句,以及ORDER BY用于排序结果。...
数据库说明.xls文件可能是对SQL脚本中涉及的数据表、字段和业务逻辑的详细解释。在Excel表格中,它可能列出了数据库结构、字段含义、数据类型以及相关的业务规则,帮助运维人员理解并正确执行SQL脚本。同时,这也为...
6. **流程控制语句**:如IF-ELSE、WHILE、BEGIN-END块,用于在T-SQL中实现条件分支和循环逻辑。 7. **存储过程和函数**:存储过程是预编译的T-SQL代码集合,可重复使用并提高性能。函数则返回一个值,可以被其他...
- `INFORMATION_SCHEMA.TABLES`:包含当前数据库中的所有表的信息。 #### 判断存储过程是否存在 使用`OBJECT_ID`检查存储过程是否存在。 **语法示例:** ```sql IF OBJECT_ID(N'[dbo].[存储过程名称]', 'P') IS ...
根据提供的文件信息,本文将详细解释如何通过 SQL 查询获取数据库表中的所有列名,并对代码进行解析。 ### 获取表列名的重要性 在处理 SQL 数据库时,了解如何快速且准确地获取表中的列名是非常重要的。这不仅能...
6. 使用 WHILE 循环来遍历所有表和列,并构建动态 SQL 语句来搜索关键字。 7. 使用 EXEC 语句来执行动态 SQL 语句,并将搜索结果插入到临时表 #t 中。 8. 使用 SELECT 语句来返回临时表 #t 中的搜索结果。 使用该...
- `SELECT`:从数据库表中检索数据行和列。可以使用星号(*)表示选择所有列,或指定具体的列名。 - `INSERT INTO`:向数据库表添加新数据行。可以插入单行数据或批量数据。 - `DELETE FROM`:从数据库表中删除...
以上是根据提供的文件信息整理出的SQL语法知识点及其具体应用示例,涵盖了数据查询、插入、删除、更新、表的创建与修改、权限管理以及一些高级功能如变量声明和循环控制等。这些知识点是SQL学习者必须掌握的基础,也...