`
- 浏览:
1779227 次
- 性别:
- 来自:
北京
-
sql server 2005中 一个关系表中存储所有关系表及字段类型,自动创建所有表
--创建包含所有要建立表及字段的表 myT
use Northwind
go
if object_id('myT') is not null
drop table myT
go
create table myT(
TN VARCHAR(20),
TC VARCHAR(10),
CT VARCHAR(20),
DEF INT
)
INSERT INTO myT values(
'abc','c1','int',1
)
INSERT INTO myT values(
'abc','c2','varchar(200)',0
)
INSERT INTO myT values(
'def','c3','xml',1
)
INSERT INTO myT values(
'def','c4','varchar(100)',0
)
go
--select * from myT
--创建所有表
declare @total int
declare @count int
declare @sql varchar(1000)
declare @name varchar(200)
set @count=0
set @sql=''
select @total=count(distinct tn) from myT--计算表的个数
while @count<@total -- 循环遍历所有的表名
begin
with tmp1 as(select distinct tn from myT),
tmp2 as(select tn,Row_Number() over(order by tn) as rownum from tmp1)
select @name=tn from tmp2
where rownum =@count+1
-- 创建各个表
select @sql=@sql+' '+tc+' '+ct+' '+case when def=1 then 'not null'
when def=0 then 'null'
end+','
from myT where tn=@name
set @sql ='create table '+@name+'('+@sql+')'
select @sql
set @count=@count+1
end
/**//*
--创建所有表
declare @total int
declare @count int
declare @distable varchar(50)
declare @givename varchar(100)
declare @sql varchar(1000)
declare @name varchar(200)
set @count=0
set @distable=''
--计算表的个数
select @total=count(distinct tn) from myT
--select @total
while @count<@total -- 循环遍历所有的表名
begin
with test as(
select distinct tn from myT
),
test2 as(
select tn,Row_Number() over(order by tn) as rownum from test
)
select @distable=tn from test2
where rownum =@count+1
-- 创建各个表
set @givename=@distable
select @ext=count(1) from myT where tn=@givename
if(@ext=0)
begin
print('Error')
end
else
begin
set @sql=''
set @name =''
set @name=@givename
select @sql=@sql+' '+tc+' '+ct+' '+case when def=1 then 'not null'
when def=0 then 'null'
end+','
from myT where tn=@givename
set @sql ='create table '+@name+'('+@sql+')'
select @sql
--exec (@sql)
end
set @count=@count+1
end
*/
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
sqlserver字段类型介绍 数据库中,英文字符只需要一个字节存储就足够了,但汉字和其他众多非英文字符,则需要两个字节存储。如果英文与汉字同时存在,由于占用空间数不同,容易造成混乱,导致读取出来的字符串是乱码...
sqlserver 快速查询存储过程或者视图中是否用到某个表或者字段。
在sql server的字段中保存文件,文件大小没有限制。 字段类型2005以上是 varbinary(MAX),2000版本是image.
SQL Server开发过程中,为了传入数据集类型的变量(比如接受C#中的DataTable类型变量),需要定义“用户自定义表类型”,通过“用户自定义表类型”可以接收二维数据集作为参数,在需要修改“用户自定义表类型”的...
当你在使用某软件时,已知某个数据,但是想查看它保存在sql哪个表内字段时,用它非常方便
Microsoft SQL Server 2005 Express Edition (SQL Server Express) 是一个免费且易于使用的 SQL Server 2005 版本,它替换了 Microsoft Desktop Engine (MSDE)。与 Microsoft Visual Studio 2005 集成之后,SQL ...
SQLServer考试题及答案 选择题: 1、在MS SQL Server中,用来显示数据库信息的系统存储过程是( ) A sp_ dbhelp B sp_ db C sp_ help D sp_ helpdb 2、SQL语言中,删除一个表的命令是( ) A DELETE B DROP C ...
sql server中的image类型的数据导出到oracle的clob字段中
SQLSERVER数据库中存储BLOB类型数据,在线等现在公司要求用PB6.5+SQLser
C# 存取SqlServer中的Image类型 有时候我们需要将图片存到数库中的Imgae类型的字段下,以下是存取的两种方法:
其步骤就是:利用update操作触发器产生的2个虚拟表【inserted】用来存储修改的数据信息和【deleted】表,然后将对应的数据更新到对应数据表中的字段信息中; 1.首先创建3个表: a.信息表: USE [SQL-LI] BEGIN ...
昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行,比如表中有两列数据 : 类别 名称 AAA 企业1 AAA 企业2 AAA 企业3 ...
所以,在建立系统存储客户信息时,倾向于在单独的一个数据表里存储姓氏字段,而且还附加起始日和终止日等字段,这样就可以跟踪这一数据条目的变化。文中介绍了SQL Server数据库设计表和字段的经验。如字段名、前缀...
4、 如何在SQLServer中创建临时表(如何在SQLServer中将数据复制到创建的临时表) 5 如何实现行转列 6 查询出某个字段所有重复的记录 7 写一条sql语句,要修改一个字段的俩个值,比如把字段sex中的男改为女,女改为男 ...
包含SQLserver数据库的两个存储过程的完全代码,该存储存储可以一次性替换数据库中所有表或者所有列中的关键字,并介绍其使用方法。本存储过程在我单位更名时起到重要作用。
(4) 如何在SQLServer中创建临时表(如何在SQLServer中将数据复制到创建的临时表) (5)如何实现行转列 (6)查询出某个字段所有重复的记录 (7) 写一条sql语句,要修改一个字段的俩个值,比如把字段sex中的男改为...
C#+存取SqlServer中的Image类型
sqlserver2005教程SQLSERVER2005中Reporting Service执行日志的读取方法 恢复SQL2005误删除的数据 SQL2005 Management Studio 之 SSMS Field Types of SQL Server 2005 SQL Server 2005和SQL Server 2000数据的...
在包含标识列的表中插入值时,Microsoft SQL Server 将基于上一次使用的标识值(标识种子属性)和在创建列时指定的增量值(标识增量属性)自动生成下一个标识符。 注意: 只能为不允许空值且数据类型为 decimal、int...
当您更改某个受关系影响的列的数据类型、长度、精度、小数位数等信息时,关系中的其他字段将随之更改,这个过程是递归的,所有与该字段有直接或间接关系引用的字段都将受到更改。 8、为更改生成SQL脚本。 使用...