数据库入门MSSQL MySQL Oracle Sybase DB2 Informix 其它数据库
返回首页
当前位置: 冰山软件站 > 数据库 > MSSQL >
  • 解决SQL 2005/2008 中的OUTPUT与CHECK约束冲突的问题
    [MSSQL] | 日期:2012-02-23 13:30 | 点击:12 | 好评:0

    在SQL Server 2005中,新增的OUTPUT子句极大地提高了数据转移的方便性,不过很遗憾的是, OUTPUT子句的输出表不能包含启用状态的CHECK约束。这未免让人觉得很不爽。不过,在实际使用过程中,却发现了一个很奇怪的问题,某些具有启用状态的CHECK约束的表确实无法用于OUTPUT子句,而某些表却是可以的,经过对比,发现了这个很奇怪现象的原因,使得可以把有启用状态的CHECK约束的表用于OUTPUT子句。 下面是演示。 USE tempdb; GO -- 建立测试表 CREATE TABLE...

  • 使用SQL2008更改跟踪实现数据同步
    [MSSQL] | 日期:2012-02-23 12:10 | 点击:96 | 好评:0

    SQL Server 2008 引入了更改跟踪,这是一种轻量型解决方案,它为应用程序提供了一种有效的更改跟踪机制。通常,若要使应用程序能够查询对数据库中的数据所做的更改和访问与这些更改相关的信息,应用程序开发人员必须实现自定义更改跟踪机制。创建这些机制通常涉及多项工作,并且常常涉及使用触发器、timestamp 列和新表组合来存储跟踪信息,同时还会涉及使用自定义清除过程。 通过更改跟踪,可以很容易地编写同步数据的应用,下面是一个使用更改跟踪实现单向数据同步的示例。 1. 建立示例环境 -- =======...

  • 用 T-SQL 实现 base64 解码
    [MSSQL] | 日期:2012-02-23 11:30 | 点击:62 | 好评:0

    IF OBJECT_ID(N'dbo.f_base64_decode') IS NOT NULL DROP FUNCTION dbo.f_base64_decode; GO /*-- == base64 解码================================= 在SQL Server 中,使用FOR XML 生成xml 实例时,binary 数据 使用base64 编码,而解释xml 的时候,却没有相应的解码方法。 使用此函数可以解决这个问题 Base64 编码把个位字节(*8=24)转化为...

  • 在SQL 2005/2008 中使用Gmail帐号配置数据库邮件功能
    [MSSQL] | 日期:2012-02-23 10:20 | 点击:17 | 好评:0

    下面的脚本演示,在 Microsoft SQL Server 2005/2008 中,使用 Gmail 帐号配置数据库邮件功能 -- 启用数据库邮件功能 -- EXEC sys.sp_configure N'show advanced options', 1 RECONFIGURE; EXEC sys....

  • 将指定的SQL表/视图中的数据导出为 html 文件
    [MSSQL] | 日期:2012-02-23 09:02 | 点击:15 | 好评:0

    IF OBJECT_ID(N'dbo.p_ExportHtml') IS NOT NULL DROP PROC dbo.p_ExportHtml; GO /*-- == 导出表/视图中的数据为html 文件====================== 此存储过程用于将指定的表/视图中的数据导出为 html 文件 由于是使用存储过程, 因此文件目录基于 sql server 服务器 存储过程中会使用xp_cmdshell 调用bcp 来写文件 因此必须打开xp_cmdshell 功能, 可以使用下面的脚本实...

  • 不提升用户权限 让普通用户执行xp_cmdshell存储过程
    [MSSQL] | 日期:2012-02-23 08:20 | 点击:24 | 好评:0

    环境需求:SQL Server 2005 及之后的版本 背景 xp_cmdshell是一个很危险的存储过程,通过它,可以访问操作系统的资源,但有时候我们也需要使用它来实现一些特殊的处理。 从安全的角度来考虑,禁用xp_cmdsehll是最保险的,即使为了特殊目的而要求使用它,也最好能够编写一些实现这个特殊目的的用户存储过程,只在这个用户存储过程中使用xp_cmdshell,而普通用户只能使用这些用户存储过程。 正确的解决办法 下面的示例显示如何使普通用户在不具有执行存储过程xp_cmdshell的权限下,...

  • 将数据库中所有表的smalldatetime列改为nvarchar的方法
    [MSSQL] | 日期:2012-02-23 07:50 | 点击:14 | 好评:0

    -- 将当前数据库中, 所有表的smalldatetime 列改为nvarchar(20) -- 如果列上有索引/默认值之类的依赖项, 则无法修改 EXEC sp_msforeachtable @command1 = N' DECLARE CUR CURSOR LOCAL FOR SELECT N''ALTER TABLE ? ALTER COLUMN '' + QUOTENAME(C.name) + N''nvarchar(20)'' FROM syscolumns C, systypes T WHER...

  • MSSQL中树形结构的查询方法
    [MSSQL] | 日期:2011-10-17 08:31 | 点击:72 | 好评:0

    树形结构是一类重要的非线性结构,在关系型数据库中如何对具有树形结构的表进行查询,从而得到所需的数据是一个常见的问题。 关系型数据库 将数据按表结构形式进行组织。它对表格的处理方便灵活,且易学易用,因而得到广泛的应用。关系型数据库所处理的表格是线性结构的,表的每一行对应着一个数据元素,称做一条记录。记录与记录之间呈线性排列,彼此间没有联系。 然而,在解决实际问题时,常常会遇到非线性结构的数据。如下表所示,每一条纪录中的上级代码,就和其他纪录有着联系,这样就形成了一棵具有...

  • SQL Server中查看连接数的方法
    [MSSQL] | 日期:2011-05-22 07:05 | 点击:209 | 好评:0

    系统变量 @@CONNECTIONS 返回自上次启动 Microsoft SQL Server 以来连接或试图连接的次数。 @@MAX_CONNECTIONS 返回 Microsoft SQL Server 上允许的同时用户连接的最大数。返回的数不必为当前配置的数值...

  • SQL里类似SPLIT的分割字符串函数
    [MSSQL] | 日期:2011-03-20 07:38 | 点击:57 | 好评:0

    T-SQL对字符串的处理能力比较弱,比如我要循环遍历象1,2,3,4,5这样的字符串,如果用数组的话,遍历很简单,但是T-SQL不支持数组,所以处理下来比较麻烦。下边的函数,实现了象数组一...

  • 利用SQL SERVER建立登录WINDOWS帐号
    [MSSQL] | 日期:2011-02-17 07:33 | 点击:39 | 好评:0

    那一刻,我的心跳到了嗓子眼。 运行建立帐号命令,OK! 远程登录,输入帐号,密码,OK!终于又进去了! 我忽然发现,数据库服务器登录不了了。 提示帐号密码过期。按提示修改,提...

  • SQL SERVER 里的错误处理(try catch)
    [MSSQL] | 日期:2011-02-17 07:33 | 点击:19 | 好评:0

    SQL SERVER里,也有TRY CATCH。格式如下 BEGIN TRY END TRY BEGIN CATCH END CATCH。 另外,WITH 语句如果前面还有别的SQL语句,应该在前面的SQL语句结尾加上分号;。比如在这个TRY CATCH里,就应该在前面...

  • CLR程序集里的 ExecuteScalar() 和 @@IDENTITY
    [MSSQL] | 日期:2011-02-17 07:32 | 点击:22 | 好评:0

    象这样的语句 command.CommandText = INSERT ;SELECT @@IDENTITY; ; int iRe = (int)command.ExecuteScalar(); 在 C# 里面,一直都没发现有什么问题。 可以写在 CLR 程序集里,给 SQL SERVER 2005 执行,就有问题,报...

  • SQL SERVER 的 CLR 存储过程
    [MSSQL] | 日期:2011-02-17 07:31 | 点击:36 | 好评:0

    MS SQL的TransactSQL语法比较单一,用起来也很不习惯,如果想实现一些复杂一点的逻辑,不方便。 可以利用NET编码,编译成DLL,然后在SQL SERVER里引用。 一、 编码 1、 新建一个项目,数据...

  • SQL 标量值函数的调用
    [MSSQL] | 日期:2011-02-17 07:31 | 点击:60 | 好评:0

    调用 MS SQL 标量值函数,应该在函数前面加上 dbo.,否则会报 不是可以识别的 内置函数名称错误。例如 DECLARE @WhichDB TINYINT; SELECT @WhichDB = dbo. user_GetWhichDB(1);--看看是哪个数据库的 另外,...

  • 如何给OPENQUERY传递参数
    [MSSQL] | 日期:2011-02-17 07:31 | 点击:120 | 好评:0

    发现SQL SERVER里,直接调用链接服务器的函数是不可以的。 CREATE FUNCTION func_Test ( @UserId INT ) RETURNS TABLE AS RETURN ( SELECT * FROM [192.168.0.252].[User].dbo.func_GetData(@UserId) ) GO 会报不允许使用远程表...

  • 保证唯一性只能靠建唯一索引
    [MSSQL] | 日期:2011-02-17 07:30 | 点击:13 | 好评:0

    在数据库里面,如果想保证某个字段的唯一性,一定要建唯一索引,而不能指望在插入或更新前的代码检测。 比如 IF NOT EXISTS(SELECT 1 FROM User WHERE Email=@Email) { INSERT } 1、 这种做法不能保...

  • 数据库迁移:从SQL2005到SQL2008
    [MSSQL] | 日期:2011-02-17 07:29 | 点击:57 | 好评:0

    最近我们网站新增了一台数据库服务器,需要将现有的主要数据库迁移到新服务器上。 现有的这台数据库服务器装的是SQL2005。考虑到SQL2008已经出来很久了,想必已经比较成熟,功能又...

  • 让SQL SERVER突破2G内存限制
    [MSSQL] | 日期:2011-02-17 07:28 | 点击:67 | 好评:0

    32 位的操作系统只能用 4G 的内存(不确定这句话是否正确),因为 2 的 32 次方是 4G 。默认的情况下,操作系统给自己留了 2G ,剩下的 2G 给应用程序。所以,每个应用程序所能使用的...

  • SQL SERVER 表分区造成插入慢?
    [MSSQL] | 日期:2011-02-17 07:27 | 点击:47 | 好评:0

    某日,我将一个有数千万条记录的表分区之后,数据库CPU一下子飙升到100%。 性能不降反升,什么道理? 因为这个表每天都有约500万条记录插入,难道是表压缩和索引压缩的缘故?去掉...

  • 首页
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 下一页
  • 末页
  • 1022023
推荐内容