标签: sql-server-2000

如何从sql语句返回常量?

如何从sql语句返回常量?

例如,如果我的(布尔表达式)为真,我将如何更改下面的代码以便"我的消息"将返回

if (my boolean expression)
 "my message"
else
 select top 1 name from people;
Run Code Online (Sandbox Code Playgroud)

我正在使用ms sql 2000

sql t-sql sql-server sql-server-2000

16
推荐指数
2
解决办法
5万
查看次数

如何在SQL Server中禁用字符串截断错误?

如果我插入或更新一个超过字段大小的字符串,我怎么能告诉SQL Server不要引发错误 - 我想在这个例子中进行静默截断.

sql-server-2000

15
推荐指数
1
解决办法
2万
查看次数

SQL英文查询怎么了?

使用英语查询部署SQL Server 2000.那时,我还年轻,不熟悉SQL,所以我跳过那一章.现在,经过多年的努力,我们再次想出了一个可以理解简单用户问题的逻辑程序.

还有其他选择吗?英语查询现在在哪里?

sql sql-server sql-server-2000

15
推荐指数
3
解决办法
4443
查看次数

如何在SQL Server中找到未编制索引的外键

我有一个SQL Server 2000数据库,大约有220个表.这些表之间有许多外键关系.通过性能分析,我们发现许多这些外键关系都缺少索引.我不想对性能问题做出反应,而是积极主动地找到所有缺少索引的外键.

如何以编程方式确定哪个外键缺少索引?

sql sql-server sql-server-2000 foreign-keys

15
推荐指数
3
解决办法
9505
查看次数

SQL Server Management Studio:静默导入,忽略99.9%的数据

问题

我正在尝试使用SQL Server Management Studio的Import Data任务将数据导入表中.它只带来了26行,原来的49,325行.(编辑:这是99.9%来自的地方:(1-26/49325)*100 = 99.9%

在企业管理器中正确使用DTS会带来所有49,325行.

为什么SSMS没有导入所有行,报告它成功传输了49,325,并且没有遇到任何错误?为什么企业管理器能够正确导入所有49,325行?

Microsoft SQL Server Management Studio版本:10.0.1600.22(从SQL Server 2008开始,今天安装在全新的Windows 7计算机上,应用了SP1)

证明 - 使用SSMS导入

STRTransactions表最初是空的:

在此输入图像描述

Source是以下ContosoFrobManager数据库lithium:

在此输入图像描述

目的地是Grob数据库lithium;

在此输入图像描述

我想从一个(或多个)表复制数据:

替代文字

我想复制STRTransactions表格: 替代文字

您可以附加到现有表,这很好(它是空的).我想启用身份插入.并且不要尝试导入时间戳(因为你无论如何都会抱怨): 替代文字

马上跑,没关系: 替代文字

是的,你要做的事情: 替代文字

我设法在传输49,325行时捕获它,大约在1k标记处: 替代文字

全部完成.成功复制了所有49,325行: 替代文字

这是报告:

执行成功

  • 初始化数据流任务(成功)

  • 初始化连接(成功)

  • 设置SQL命令(成功)

  • 设置源连接(成功)

  • 设置目标连接(成功)

  • 验证(成功)消息警告0x80049304:数据流任务1:警告:无法打开全局共享内存以与性能DLL通信; 数据流性能计数器不可用.要解决此问题,请以管理员身份运行此程序包,或在系统控制台上运行.(SQL Server导入和导出向导)警告0x80047076:数据流任务1:输出"OLE DB源输出"(11)上的输出列"timestamp"(158)和组件"Source - STRTransactions"(1)随后未使用在数据流任务中.删除此未使用的输出列可以提高数据流任务性能.(SQL Server导入和导出向导)

  • 准备执行(成功)

  • 预执行(成功)

  • 执行(成功)

  • 复制到[dbo].[STRTransactions](成功)传输49325行

消息信息0x402090df:数据流任务1:"组件"目标中的数据插入的最终提交 - STRTransactions"(163)"已启动.(SQL Server导入和导出向导)信息0x402090e0:数据流任务1:"组件"目标中的数据插入的最终提交 - STRTransactions"(163)"已结束.(SQL Server导入和导出向导)

  • 后执行(成功)消息信息0x4004300b:数据流任务1:"组件"目标 - STRTransactions"(163)"写入49325行.(SQL Server导入和导出向导)

优秀.全部完成." 写了49325行 ". …

sql-server etl ssms sql-server-2000 enterprise-manager

15
推荐指数
1
解决办法
2万
查看次数

SQL Server 2000 - ALTER TABLE + INSERT INTO =错误?

我正在尝试更改表以添加新列,然后在其中插入新行.

ALTER TABLE Roles ADD ModifiedDate DateTime;
INSERT INTO Roles (Name, [Description], CreatedBy, BuiltIn, Created, ModifiedDate)
    VALUES ('Name', 'Description', 0, 1, GETDATE(), GETDATE())
Run Code Online (Sandbox Code Playgroud)

但我得到:

Msg 207, Level 16, State 1, Line 1
Invalid column name 'ModifiedDate'.
Run Code Online (Sandbox Code Playgroud)

当我尝试在SQL Server Management Studio中运行上述SQL时.我认为这是Studio错误,而不是服务器错误.如果SQL运行,它应该工作,因为该列将存在.

如何向表中添加新列然后插入该表?

版本:

  • SQL Server 2000
  • SQL Server Management Studio 2008

t-sql sql-server sql-server-2000

15
推荐指数
1
解决办法
7235
查看次数

T-SQL/SQL Server 2000中的DayOfYear函数

例如,2 FEB是一年中的第33天.

是否有内置的T-SQL函数返回日期(在SQL Server 2000中)?或者你是否必须使用强制转换来获取所提供日期的一年中的第一天,然后再进行DateDiff?

t-sql sql-server sql-server-2000

15
推荐指数
1
解决办法
2万
查看次数

使用SQL Server进行NHibernate分页

当使用SetFirstResult(start)SetMaxResults(count)实现分页的方法时,我注意到生成的查询只执行a select top count * from some_table并且它不考虑start参数或至少不考虑数据库级别.看来如果我指示NHibernate执行以下查询:

var users = session.CreateCriteria<User>()
                   .SetFirstResult(100)
                   .SetMaxResults(5)
                   .List<User>();
Run Code Online (Sandbox Code Playgroud)

105条记录将在数据库服务器和应用程序之间传输,这将记录前100条记录.对于包含许多行的表,这可能是个问题.

我已经验证了使用SQLite数据库NHibernate利用OFFSETLIMIT关键字来过滤数据库级别的结果.我知道在SQL Server 2000中没有等效的OFFSET关键字和Oracle ROWNUM,但有没有解决方法?SQL Server 2005/2008怎么样?

nhibernate paging sql-server-2000

13
推荐指数
2
解决办法
5097
查看次数

如何获取以特定前缀开头的所有存储过程及其参数的列表?

有没有办法查询数据库并检索所有存储过程及其参数的列表?
我正在使用SQL Server 2000.

sql-server stored-procedures sql-server-2000

13
推荐指数
2
解决办法
2万
查看次数

SQL Server printf

在Sql Server中是否有类似printf的功能?我想要与RAISERROR函数相同的功能,但我不想抛出错误或打印消息,而是想在varchar中编写它,因为我的ERP不会让我处理错误消息.

这是SQL Server 2000.

RAISERROR的实际工作示例:

declare @name varchar(10)
set @name = 'George'

RAISERROR ('Hello %s.', 10, 1, 'George')
Run Code Online (Sandbox Code Playgroud)

版画 Hello George

我在找什么:

declare @name varchar(10), @message varchar(50)
set @name = 'George'

SET @message = printf('Hello %s.', 'George')
return @message
Run Code Online (Sandbox Code Playgroud)

这会回来 Hello George

sql-server sql-server-2000

13
推荐指数
3
解决办法
2万
查看次数