SQL点滴4—筛选数据列的类型,字段大小,是否可为空,是否是主键,约束等等信息
项目需要将Access数据库中的数据导入到SQL Server中,需要检验导入后的数据完整性,数据值是否正确。我们使用的是Microsoft SQL Server 2008 Migration Assistant for Access这个工具,次工具专门用来将Access中的数据库导出到SQL Server中,我们的疑虑是这个导出过程中会不会因为认为的原因导致数据错误或者数据之间的关联丢失,看起来有点多次一举,但是还是找方法来做测试。于是就产生了今天的问题,怎么从SQL Server中找出所有的数据列的类型,字段大小,是否可为空,是否是主键,约束等等信息。我找很多资料鼓捣出这个存储过程,先来看看代码:
1 USE [MIS]
2 GO
3
4 /****** Object: StoredProcedure [dbo].[sp_SelectColumnInfor] Script Date: 09/23/2010 19:00:28 ******/
5 SET ANSI_NULLS ON
6 GO
7
8 SET QUOTED_IDENTIFIER ON
9 GO
10
11 create procedure [dbo].[sp_SelectColumnInfor]
12 as
13 declare @table_name varchar(250)
14 --create a temp table
15 create table #tempTable(
16 TABLE_NAME nvarchar(128),
17 COLUMN_NAME nvarchar(128),
18 IS_NULLABLE varchar(3),
19 DATA_TYPE nvarchar(128),
20 CHARACTER_MAXIMUM_LENGTH int,
21 CONSTRAINT_NAME nvarchar(128),
22 )
23 --create a cursor
24 declare curTABLE cursor for
25 select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_TYPE=BASE TABLE
26 for read only
27
28 open curTABLE
29 fetch next
2 GO
3
4 /****** Object: StoredProcedure [dbo].[sp_SelectColumnInfor] Script Date: 09/23/2010 19:00:28 ******/
5 SET ANSI_NULLS ON
6 GO
7
8 SET QUOTED_IDENTIFIER ON
9 GO
10
11 create procedure [dbo].[sp_SelectColumnInfor]
12 as
13 declare @table_name varchar(250)
14 --create a temp table
15 create table #tempTable(
16 TABLE_NAME nvarchar(128),
17 COLUMN_NAME nvarchar(128),
18 IS_NULLABLE varchar(3),
19 DATA_TYPE nvarchar(128),
20 CHARACTER_MAXIMUM_LENGTH int,
21 CONSTRAINT_NAME nvarchar(128),
22 )
23 --create a cursor
24 declare curTABLE cursor for
25 select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_TYPE=BASE TABLE
26 for read only
27
28 open curTABLE
29 fetch next
- 更多SQLServer疑问解答:
- 配置MSSQL复制指定快照文件夹提示:不是有效的路径或文件名
- 详细解读varchar和Nvarchar区别
- SQL SERVER 2005 同步复制技术
- 进程未能大容量复制到表 解决方法
- MSSql实例教程:MSSql数据库同步
- SQLServer2000同步复制技术实现(分发和订阅)
- sqlserver
- SQLSERVER
- 测试 sqlserver 最大用户数连接
- 写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的
- sqlserver2008的安装问题。
- 为什么安装的SQL server 2008我的没有MSSQLSERVER协议啊?
- 怎样把exel表里的数据复制到sqlserver表里
- sqlserver数据库主键和外键问题
- sqlserver 中的左表连接查询和右表连接查询有啥不同?有什么用?
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,
部分文章来自网络,