GVKun编程网logo

SQL Server 2000 数据类型(sql server 2000数据类型有)

16

在本文中,您将会了解到关于SQLServer2000数据类型的新资讯,同时我们还将为您解释sqlserver2000数据类型有的相关在本文中,我们将带你探索SQLServer2000数据类型的奥秘,分

在本文中,您将会了解到关于SQL Server 2000 数据类型的新资讯,同时我们还将为您解释sql server 2000数据类型有的相关在本文中,我们将带你探索SQL Server 2000 数据类型的奥秘,分析sql server 2000数据类型有的特点,并给出一些关于SQL Server 2000向SQL Server 2008 R2推送数据图文教程、SQL Server 2005 数据库转 SQL Server 2000的方法小结、SQL Server 2005和SQL Server 2000数据的相互导入、SQL Server 2005:确定变量的数据类型的实用技巧。

本文目录一览:

SQL Server 2000 数据类型(sql server 2000数据类型有)

SQL Server 2000 数据类型(sql server 2000数据类型有)

数据类型
在 Microsoft® sql Server™ 中,每个列、局部变量、表达式和参数都有一个相关的数据类型,这是指定对象可持有的数据类型(整型、字符、money 等等)的特性。sql Server 提供系统数据类型集,定义了可与 sql Server 一起使用的所有数据类型。下面列出系统提供的数据类型集。

可以定义用户定义的数据类型,其是系统提供的数据类型的别名。有关用户定义的数据类型的更多信息,请参见 sp_addtype 和创建用户定义的数据类型。

当两个具有不同数据类型、排序规则、精度、小数位数或长度的表达式通过运算符进行组合时:

通过将数据类型的优先顺序规则应用到输入表达式的数据类型来确定所得值的数据类型。有关更多信息,请参见数据类型的优先顺序。
如果结果数据类型为 char、varchar、text、nchar、nvarchar 或 ntext,则结果值的排序规则由排序规则的优先顺序规则决定。有关更多信息,请参见排序规则的优先顺序。
结果的精度、小数位数及长度取决于输入表达式的精度、小数位数及长度。有关更多信息,请参见精度、小数位数和长度。
sql Server 为 sql-92 兼容性提供了数据类型同义词。有关更多信息,请参见数据类型同义词。

精确数字
整数
bigint

从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。

int

从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。

smallint

从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整数数据。

tinyint

从 0 到 255 的整数数据。

bit
bit

1 或 0 的整数数据。

decimal 和 numeric
decimal

从 -10^38 +1 到 10^38 –1 的固定精度和小数位的数字数据。

numeric

功能上等同于 decimal。

money 和 smallmoney
money

货币数据值介于 -2^63 (-922,337,203,685,477.5808) 与 2^63 - 1 (+922,337,203,685,477.5807) 之间,精确到货币单位的千分之十。

smallmoney

货币数据值介于 -214,748.3648 与 +214,748.3647 之间,精确到货币单位的千分之十。

近似数字
float

从 -1.79E + 308 到 1.79E + 308 的浮点精度数字。

real

从 -3.40E + 38 到 3.40E + 38 的浮点精度数字。

datetime 和 smalldatetime
datetime

从 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和时间数据,精确到百分之三秒(或 3.33 毫秒)。

smalldatetime

从 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和时间数据,精确到分钟。

字符串
char

固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。

varchar

可变长度的非 Unicode 数据,最长为 8,000 个字符。

text

可变长度的非 Unicode 数据,最大长度为 2^31 - 1 (2,147,483,647) 个字符。

Unicode 字符串
nchar

固定长度的 Unicode 数据,最大长度为 4,000 个字符。

nvarchar

可变长度 Unicode 数据,其最大长度为 4,000 字符。sysname 是系统提供用户定义的数据类型,在功能上等同于 nvarchar(128),用于引用数据库对象名。

ntext

可变长度 Unicode 数据,其最大长度为 2^30 - 1 (1,073,741,823) 个字符。

二进制字符串
binary

固定长度的二进制数据,其最大长度为 8,000 个字节。

varbinary

可变长度的二进制数据,其最大长度为 8,000 个字节。

image

可变长度的二进制数据,其最大长度为 2^31 - 1 (2,147,483,647) 个字节。

其它数据类型
cursor

游标的引用。

sql_variant

一种存储 sql Server 支持的各种数据类型(text、ntext、timestamp 和 sql_variant 除外)值的数据类型。

table

一种特殊的数据类型,存储供以后处理的结果集。

timestamp

数据库范围的唯一数字,每次更新行时也进行更新。

uniqueidentifier

全局唯一标识符 (GUID)。

SQL Server 2000向SQL Server 2008 R2推送数据图文教程

SQL Server 2000向SQL Server 2008 R2推送数据图文教程

最近做的一个项目要获取存在于其他服务器的一些数据,为了安全起见,采用由其他“服务器”向我们服务器推送的方式实现。我们服务器使用的是sql server 2008 R2,其他“服务器”使用的都是SQL Server 2000,还都是运行在Windows XP上的,整个过程遇到了一些问题,也参考了一些文档,最终费了好多事才算搞定。

【一、配置分发服务器】

SQLServer 2000的复制服务包括三个角色:发布服务器、分发服务器和订阅服务器,关系如图1所示。

图1

其中发布服务器(数据源服务器)负责将数据的改变(如快照或事务等)传送到分发服务器中,由分发服务器将这些数据的改变分发到订阅服务器(目标服务器)中。其中分发服务器可以与发布服务器配置在一台服务器中。

在配置分发服务器之前,首先需要打开SQL Server Agent服务并配置为自动启动。除此之外,对于数据库复制操作,SQL Server Agent不能使用系统账户登录,而必须为本地账户,可以在“登录”选项卡中,将“登录身份”设置为“此账户”,选择任一管理员账户即可(该管理员账户必须有密码)。

然后就可以配置分发服务器了。在SQL Server 2000中,打开企业管理器,然后选择已经注册的SQL Server服务器(此处为本机服务器),然后选择“工具”菜单,选择“向导”,出现如图2所示的对话框。

图2

选择“配置发布和分发向导”,确定后点击下一步出现如图3所示的对话框。

图3

如果需要在当前数据库服务器上创建分发服务器,选择第一项即可,否则选择第二项,然后点击下一步,出现如图4所示的对话框。

图4

这里需要注意的是,快照文件夹路径必须为网络路径,即\\计算机名\盘符默认共享\路径,默认系统已经填好该项,直接点击下一步即可。如果出现出错的情况,可以打开cmd,输入“net share”查看当前共享中是否有盘符的默认共享,如果没有的话,使用“net share c$”即可创建默认共享,如果还不行可以访问参考链接2。

成功后一路下一步即可配置好分发服务器。配置完分发服务器后,在注册的数据库服务器中就会出现“复制监视器一项”。

【二、配置发布数据库】

对于SQL Server 2000向2000推送数据,接下来的操作可以继续在企业管理器中完成,而对于SQL Server 2000向高版本SQL Server推送数据,则需要安装相应版本的SQL Server Management Studio,否则在最后一步连接订阅服务器时无法连接(出现“[sql-dmo]必须使用sql server2005 管理工具才能连接到此服务器”粗无)。我们的目标服务器安装的是SQL Server 2008 R2,所以需要安装SQL Server 2008 R2 Management Studio

安装完成后首先连接到本机服务器,注意,服务器名称不能使用“(local)”或者IP,必须使用本机计算机名,登录方式使用SQL Server 身份认证。

要配置待发布的数据库,首先需要确保该数据库的“恢复模式”为“完整”,右键单击数据库,选择属性,然后选择“选项”,在“恢复模式”中设置为“完整”即可。

接下来就可以创建本地发布了,展开本机数据库,展开“复制”,在“本地发布”右键单击选择“新建发布”,如图5。

图5

点击下一步后选择待发布的数据库,点击下一步即进入选择发布类型的对话框,如图6所示。

图6

其中快照发布适合于表中无主键的数据表,每次复制时将数据全部复制过去;事务发布要求发布的数据表必须含有主键,否则无法复制。显然当数据量较大时,使用后者更好一些。如果数据库可以修改,建议将没有主键的表增加一个自增主键。这里由于源数据表中没有主键,也不能修改数据表结构,只能选择“快照发布”。点击下一步后出现选择要发布的内容的对话框,如果某个表不符合要求(如选择的事务发布但没有主键)则表名前出现禁止符号并且无法选择,如图7所示。

图7

再次点击下一步后出现自定义筛选数据的对话框,如果不需要筛选数据,点击下一步进入设置快照代理时间。快照代理即负责生成数据库的修改,可以设置为按天、周、月重复执行。这里每天推送一次,所以也只需要生成一次快照,如图8所示。如果打算设置完订阅后立即推送一次,可以选择勾选第一个选项。

图8

然后一路下一步即可完成发布的设置。

【三、配置订阅】

完成上述两步后就可以配置订阅了,订阅分为两种,分别是推式订阅和拉式订阅,前者由分发服务器连接订阅服务器,向订阅服务器推送数据;后者由订阅服务器连接分发服务器,向分发服务器拉取数据。所以在完成上一步后,“本地发布”中即出现了新创建的发布,右键单击选择“新建订阅”即可出现“新建订阅向导”对话框,点击下一步后已经选择了当前的订阅,继续点击下一步,出现订阅类型设置,如图9。

图9

这里选择“推式订阅”,然后点击下一步出现选择订阅服务器和订阅数据库的对话框,如图10所示。

图10

首先点击“添加 SQL Server 订阅服务器”添加订阅服务器,出现“连接到服务器”对话框,需要注意的是,订阅服务器也需要使用服务器名称登录。如果目标服务器与本地位于同一个局域网内,使用目标服务器名可以直接登录;否则则需要设置hosts文件,添加目标服务器IP与名称的对应关系才可以。登录方式同样使用SQL Server 身份认证。注意,修改完hosts重启之后才会生效。

添加完订阅服务器后,如果订阅服务器中有同名的数据库,则会自动显示在“订阅数据库”中。除此之外,订阅数据库需要登录账号有“db_owner”权限,否则不会显示在“订阅数据库”中,当然也可新建数据库。点击下一步后出现设置同步计划的对话框,如图11。

图11

代理计划可以设置为“连续运行”、“仅按需运行”或与创建发布时类似的自定义时间,其中“连续运行”指的是一直检查更新并推送到订阅服务器中,“仅按需运行”则需要手动执行,“<定义计划>”与创建发布时相同,可以设置重复执行的周期。如果每天只推送一次的话,可以设置在上一步快照代理执行时间之后的一个事件,设置完同步计划后下一步可以设置初始化时间,如图12。

图12

初始化时间可以设置为“立即”或“首次同步时”,如果上一步设置发布时选择的立即生成快照,同时这里选择“立即”初始化订阅的话,那么向导完成后会立即推送一次数据;否则将按预设的计划执行。

按上述设置完成后遇到了一个问题,在执行订阅代理时,出现“登录失败。该登录名来自不受信任的域,不能与 Windows 身份验证一起使用”的错误。但是查看发现不论本机服务器还是订阅服务器均使用SQL Server 身份认证。后来进入SQL Server 2000的企业管理器,在本机服务器的“复制”中右键单击,选择“配置发布、订阅服务器和分发”,然后点击订阅服务器,在订阅服务器的列表中点击之前设置的订阅服务器右侧的“...”,发现登录方式为“Windows 身份认证”。重新将订阅服务器的登录配置为SQL Server 身份认证即可解决该问题。

本文及文章中代码均基于“署名-非商业性使用-相同方式共享 3.0”,文章欢迎转载,但请您务必注明文章的作者和出处链接,如有疑问请私信我联系!

您可能感兴趣的文章:
  • 数据库复制性能测试 推送模式性能测试
  • .net 通过URL推送POST数据具体实现
  • JavaScript数据推送Comet技术详解
  • Node.js实现数据推送

SQL Server 2005 数据库转 SQL Server 2000的方法小结

SQL Server 2005 数据库转 SQL Server 2000的方法小结

今天有朋友推荐个活就是把Sql Server 2005的数据库转到Sql Server 2000里,但实际操作起来遇到的问题还不少,网上搜了一些办法,在此陈列出来,并把我使用时遇到的问题及解决方案一并记录下来,以备后期查阅

前几步和网上说的一样,先生成2000的脚本,然后再到2000里面执行。操作如下:

打开 SQL Server 2005 的Manger Studio

-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例

找到你要转换的数据库(建议先将此数据库里的登录名清空,否则转换会出现问题)

-- 右键选择要转成 SQL Server2000 的数据库

-- 选择 任务

-- 选择 生成脚本

-- 在"脚本向导"的"选择数据库"中, 确定选择的是要转到2000的库

-- 勾选"为所选数据库中的所有对象编写脚本" (这个勾不要其实也可以的,根据你的需要来。)

-- 在接下来的"选择脚本选项"中, 找到"为服务器版本编写脚本"项, 选择"SQL Server 2000"

-- 其他选项根据需要设置

-- 最后把脚本保存到一个 .sql 脚本文件

复制代码 代码如下:

有可能会遇到的问题:
目标服务器版本不支持该对象或不支持该对象的一个属性。 (Microsoft.SqlServer.Smo)
脚本无法成功生成。此问题是由于“数据库兼容性级别”导致的。
解决方案:
server有个改兼容性级别的语句:
sp_dbcmptlevel [ [ @dbname = ] name ] [ , [ @new_cmptlevel = ] version ]
语句如下:
EXEC sp_dbcmptlevel ''你的数据库名'', ''80'';
GO
这个80就是各个版本对应的版本号
60 = SQL Server 6.0
65 = SQL Server 6.5
70 = SQL Server 7.0
80 = SQL Server 2000 ——8.0
90 = SQL Server 2005 ——9.0
由于是转到2000于是兼容性级别就要调到80

2. 在2000中创建目标数据库
在查询分析器(或2005的manger studio在打开脚本文件), 连接到SQL Server 2000,执行上面生成的脚本.以创建一个新的数据库 。

复制代码 代码如下:

有可能会出现的问题:
max附近有语法错误
server2000里面没有max这种用法,所以建议大家把SQL脚本里的MAX改成一个很大的数就是了,比如4000(4000好像是上限)。
odb问题
其他数据库我不知道,但是不论你用server什么数据库,只要不是你自己的,通常管理员是不会给你配odb权限的,所以把所有的odb檫掉就可以了。另外还有个办法,用你的远程数据库登录名可以改成那个用户的所有者,在本地也修改一下,然后再运行,就OK啦。

3. 将数据从2005导到2000

首先打开SQL Server 2005 的Manage Studio
-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例
-- 右键选择要转成 SQL Server2000 的数据库--选择 任务 --导出数据
(注意,如果你的Manage Studio 为 Express版本,那任务里是没有导出数据选项的,你可以直接找到你的数据安装目录里的Binn文件夹,例如 C:\Program Files\Microsoft SQL Server\90\DTS\Binn 然后执行DTSWizard.exe文件即可。)
-- 在"SQL Server 导入和导出向导"的"选择数据源"步骤中, 确定选择的是要导出的数据库
-- 在"选择目标"步骤中, 连接到 2000, 并选择步骤2新建的库
-- 在"选择源表和源视图"中, 选择所有的表(注意,如果表中有标识的话,要在此处选中表,然后单击下方的“编辑映射”按钮,新开窗口中勾选“使用标识插入”,每个有标识的表都要这样选择一次。还有,此处导入数据如果牵扯到主外键关系或者其他约束的话,一定要分批次按照关系的先后顺序导入,否则会报错。)
-- 最后完成

复制代码 代码如下:

最后注意下2000的select top 后跟的不可以是表达式,所以如果你的分页里有用到类似
declare @pageIndex int
select top (@pageIndex-1)*12 newsID from News
的话,请一律改成字符串拼接方法,例如下面的例子:
declare @strSql varchar(1000)
declare @pageIndex int
set @pageIndex= (@pageIndex-1)*12
set @strSql=''select top ''+str(@pageIndex)+''  newsID from News''
exec (@strSql)

sql server 2005转到2000的步骤(简易版,一路不错形式)

2005转到2000的步骤
1. 生成for 2000版本的数据库脚本
2005 的manger studio
-- 打开对象资源管理器(没有的话按F8), 连接到你的实例
-- 右键要转到2000的库
-- 任务
-- 生成脚本
-- 在脚本向导的选择数据库中, 确定选择的是要转到2000的库
-- 勾选为所选数据库中的所有对象编写脚本
-- 在接下来的选择脚本选项中, 将”编写创建数据库的脚本”设为True,找到为服务器版本编写脚本项, 选择SQL Server 2000
-- 其他选项根据需要设置
-- 最后把脚本保存到一个 .sql 脚本文件

2. 在2000中创建目标数据库
在查询分析器(或2005的manger studio在打开脚本文件), 连接到SQL Server 2000,执行上面生成的脚本.以创建一个新的数据库

3. 将数据从2005导到2000
打开SQL Server 2000的企业管理器
-- 右键要导入数据的数据库
-- 任务
-- 导入数据
-- 在SQL Server 导入和导出向导的选择数据源步骤中, 确定选择的是要导出的数据库
-- 在选择数据源步骤中, 连接到 2005, 并选择源数据库
-- 在选择源表和源视图中, 选择所有的表
-- 最后完成

您可能感兴趣的文章:

SQL Server 2005和SQL Server 2000数据的相互导入

SQL Server 2005和SQL Server 2000数据的相互导入

1) SQL Server 2000数据导入SQL Server 2005 在SQL Server 2000中,把其数据进行备份,在数据库中点击右键,选择所有任务下的备份数据库,弹出一个对话框,然后点击添加按钮,输入对应的数据库备份名称,就可以备份数据了。然后在SQL Server 2005中,在数据

   1) sql server 2000数据导入sql server 2005

  在SQL Server 2000中,把其数据进行备份,在数据库中点击右键,选择“所有任务”下的“备份数据库”,弹出一个对话框,然后点击“添加”按钮,输入对应的数据库备份名称,就可以备份数据了。然后在SQL Server 2005中,在数据库中点击右键,,点击“还原数据库”,在弹出的对话框中,“常规”的选项卡中,“目标数据库”后面中,输入数据库的名字,在指定用于还原的备份集的源和位置下面选择“源设备”,在后面对应的文件夹按钮中点击选择我们在SQL Server 2000中备份的数据库,然后选中前面的选框,需要在“选项”选项卡中修改对应的路径,这样就可以在SQL Server 2005中恢复对应的数据了。在这种数据的导入过程,其实并不考虑SQL Server版本的问题了,它和各版本之间数据的互相导入没有什么区别,就是界面的显示不同而已。

  2) SQL Server 2005数据导入SQL Server 2000中

  在SQL Server 2005中,在对应的数据库中点击右键然后选择“任务”菜单下的“生成脚本”,连续点击两个“下一步”,然后在弹出的对话框中,在“选项”下面的框中找到“为服务器版本编写脚本”,把后面的SQL Server2005修改成SQL Server 2000,然后再点击下一步,把表选中,如有存储过程,也需要把存储过程选中,然后点击下一步,全选存储过程或者表,然后点击“下一步”,再点击“完成”,然后会在新建的查询窗口中生成了所有的SQL语句,我们把这些语句进行复制,然后在SQL Server 2000中对应数据库的查询分析器中进行执行,就把对应的表结构及存储过程生成了。这时我们再来用SQL Server 2000中在对应数据库中点击右键,在“所有任务”对应的“导入数据”,输入SQL Server 2005中服务器的名称或者IP地址,然后再输入SQL Server 2000中服务器对应的名称或者IP地址,然后默认的选择进入“下一步”,全选所有的表,然后点击两个“下一步“,数据就可以导进来了。

SQL Server 2005:确定变量的数据类型

SQL Server 2005:确定变量的数据类型

在Tsql中可以确定运行时的局部变量的类型吗?

比方说,我想做一些这样的事情:

IF ( @value IS INTEGER )

要么

IF ( TYPEOF(@value) = <whatever> )

有没有人知道有什么办法完成这个?

编辑:这不是一个特定的任务,这更是一个普遍的知识问题.我很欣赏答案,表明该类型应该是已知的,因为它是在同一批中声明的,我很好奇该类型是否可以在运行时确定.

解决方法

运行这个
declare @d int

select @d = 500

if cast(sql_variant_property(@d,'BaseType') as varchar(20))  = 'int'
print 'yes'
else
print 'no'

我们今天的关于SQL Server 2000 数据类型sql server 2000数据类型有的分享已经告一段落,感谢您的关注,如果您想了解更多关于SQL Server 2000向SQL Server 2008 R2推送数据图文教程、SQL Server 2005 数据库转 SQL Server 2000的方法小结、SQL Server 2005和SQL Server 2000数据的相互导入、SQL Server 2005:确定变量的数据类型的相关信息,请在本站查询。

本文标签:

上一篇SQL Server 临时表的数值精度损失问题(sqlserver临时表 效率)

下一篇SQL Server: ISNULL与NULLIF和COALESCE(sql is null和=null)