标签: sql-server-2000

没有存储过程,如何在ASP.NET中分页结果集?

如果没有存储过程,如何在ASP.NET中分页从SQL Server中检索的结果集?

sql sql-server asp.net sql-server-2000

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

MS SQL Server 2000可以处理用Unicode编码的中文文本吗?

现在,我正在使用Ms sql server 2000,我想将我的数据存储为中文字体的unicode.但我不知道它可以存储这种类型吗?如果没有,有人可以指导我吗?

谢谢,索波林

sql t-sql sql-server sql-server-2000 character-encoding

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

如何在SQL Server 2000中更新需要"别名"的链接服务器表?

在SQL Server 2005中,tablename可用于区分您所指的表:

UPDATE LinkedServer.database.user.tablename
SET val=u.val
FROM localtable u
WHERE tablename.ID=u.ID
Run Code Online (Sandbox Code Playgroud)

在SQL Server 2000中,这会导致

服务器:消息107,级别16,状态2
列前缀"tablename"与查询中使用的表名或别名不匹配.

UPDATE LinkedServer.database.user.tablename
SET val=u.val
FROM localtable u
WHERE LinkedServer.database.user.tablename.ID=u.ID
Run Code Online (Sandbox Code Playgroud)

结果是

服务器:消息117,级别15,状态2
数字名称"LinkedServer.database.user.tablename"包含的内容超过最大前缀数.最大值为3.

而且当然,

UPDATE LinkedServer.database.user.tablename
SET val=u.val
FROM localtable u
WHERE ID=u.ID
Run Code Online (Sandbox Code Playgroud)

结果是

服务器:消息209,级别16,状态1
不明确的列名称"ID".

(实际上搜索"数字名称包含的内容超过最大数量.最大数量为3."我找到了答案,但我已经输入了这个问题,我将发布它!:-))

sql sql-server-2000 sql-update

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

仅更新sql server 2000中datetime的日期部分

我在表中有如下数据.

col1                   col2                   col3
--------------------------------------------------------
6/5/2010 18:05:00   6/2/2010 10:05:00         Null
6/8/2010 15:05:00   6/3/2010 10:45:00       6/5/2010 11:05:00 
6/3/2010 15:05:00   Null                    6/7/2010 12:05:00 
6/1/2010 15:05:00   6/3/2010 10:45:00       6/1/2010 14:05:00 
Run Code Online (Sandbox Code Playgroud)

我的要求是什么我想用单日期更新那些列的日期而不打扰时间.比方说,我想用6/1/2010更新表数据,其中字段数据不为空.请让我知道更新表数据的查询.

感谢和问候,

穆拉利

sql-server sql-server-2000

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

试图在case语句中设置变量.

我正在尝试从ERP系统的会计年度表中更新日期维度表.如果我运行以下查询:

SELECT fcname FYName
      ,min(fdstart) YearStart
      ,max(fdend) YearEnd
      ,max(fnnumber) PeriodCount
FROM M2MData01.dbo.glrule GLR
GROUP BY fcname
Run Code Online (Sandbox Code Playgroud)

我得到以下数据:

FYName            YearStart                   YearEnd                 PeriodCount
FY 2000                 1/1/2000 12:00:00 AM    12/31/2000 12:00:00 AM  12
FY 2001                 1/1/2001 12:00:00 AM    12/31/2001 12:00:00 AM  12
FY 2002                 1/1/2002 12:00:00 AM    12/31/2002 12:00:00 AM  12
FY 2003                 1/1/2003 12:00:00 AM    12/31/2003 12:00:00 AM  12
FY 2004                 1/1/2004 12:00:00 AM    12/31/2004 12:00:00 AM  12
FY 2005                 1/1/2005 12:00:00 AM    12/31/2005 12:00:00 AM  12
FY 2006                 1/1/2006 12:00:00 AM …
Run Code Online (Sandbox Code Playgroud)

t-sql initialization sql-server-2000 case-statement

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

包含特定字符的记录列表的最佳SQL查询?

我目前正在使用相对较大的SQL Server 2000 DB.它的大小为80 GB,拥有数百万条记录.

我目前需要返回一个包含一系列非法字符中至少一个的名称列表.非法字符只是指由客户定义的任意字符列表.在下面的例子中,我使用问号,分号,句号和逗号作为非法字符列表.

我最初想要做一个与正则表达式一起工作的CLR函数,但是因为它是SQL server 2000,我猜这是不可能的.

目前我这样做了:

select x from users
where 
columnToBeSearched like '%?%' OR
columnToBeSearched like '%;%' OR
columnToBeSearched like '%.%' OR
columnToBeSearched like '%,%' OR
otherColumnToBeSearched like '%?%' OR
otherColumnToBeSearched like '%;%' OR
otherColumnToBeSearched like '%.%' OR
otherColumnToBeSearched like '%,%'
Run Code Online (Sandbox Code Playgroud)

现在,我不是一个SQL专家,但我觉得上面的查询效率很低.在具有数百万条记录的表中进行8次多通配符搜索,似乎可能会严重降低系统速度.虽然它似乎在测试服务器上运行良好,但我得到了"这必须完全错误"的氛围.

由于我最终需要在实时生产服务器上执行此脚本,我希望能够获得良好的性能,以免堵塞系统.可能需要稍后扩展该脚本以包含更多非法字符,但这不太可能.

总结一下:我的目标是获取一个记录列表,其中两列中的任何一列都包含客户定义的"非法字符".数据库是实时且庞大的,所以我想要一种有效的方法,因为我相信上面的查询会非常慢.

谁能告诉我实现结果的最佳方法?谢谢!

/莫滕

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

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

如何在两个日期之间显示全年,几个月的整数?

在SQL Server 2000中,我需要在客户订单的临时表中列出年份,月份作为整数.

如果月份不存在,我仍然需要列出年,月,0.00美元.

在SQL Server 2000中执行此操作的最佳方法是什么?

01/01/201007/01/2010会产生:

__Year__, __Month__ , __Billed__
2010,1,$5000.00
2010,2,$6000.00
2010,3,$8000.00
2010,4,$0.00
2010,5,$4000.00
2010,6,$4500.00
Run Code Online (Sandbox Code Playgroud)

使用此代码:

select grp.* from 
(
    select year(orderdate) as yr, 
           month(orderdate) as mn, 
           sum(billed) 
    from Orders 
    group by year(orderdate), month(orderdate), billed 
) grp
order grp.yr, grp.mn
Run Code Online (Sandbox Code Playgroud)

是否有一个简单的解决方案,可以不跳过没有结算的月份并添加0.00美元?

t-sql sql-server sql-server-2000

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

使用BCP从SQL Server 2000导出图像列

我的任务是将一些数据从SQL Server 2000数据库中提取到磁盘上的平面格式.我的SQL Server经验很少.

有一个表包含存储在"IMAGE"类型列中的文件,以及存储文件名的nvarchar列.

看起来表中存储了多种类型的文件:Word文档,XLS,TIF,txt,zip文件等.

我正在尝试使用BCP提取一行,执行以下操作:

bcp "select file from attachments where id = 1234" queryout "c:\myfile.doc" -S <host> -T -n
Run Code Online (Sandbox Code Playgroud)

这会保存一个文件,但它已损坏,我无法用Word打开它.当我用文字打开文件时,我可以看到很多文字,但我也会得到很多不可渲染的字符.我在尝试提取图像文件时遇到了类似的问题,例如TIF.照片软件无法打开文件.

我认为我遇到了某种字符编码问题.

我在BCP中玩过-C(例如尝试RAW)和-n选项,但仍然无法使其工作.

SQL Serer中的表具有"SQL_Latin1_General_CP1_CI_AS"的排序规则

我正在从Windows 7桌面远程运行BCP.

知道我哪里错了吗?任何帮助非常感谢.

t-sql sql-server sql-server-2000

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

在sql server 2000中查找最大行及其值

我有这张桌子

ID    Level    Value
 1     1        10
 1     2        20
 1     3        15
 1     4        18
 2     2        12
 2     1        20
 3     1        50
 3     2        80  
Run Code Online (Sandbox Code Playgroud)

我想找到每个id的最大级别和这个最大行的值,结果:

ID    Level    Value
 1     4        18
 2     2        12
 3     2        80  
Run Code Online (Sandbox Code Playgroud)

我不想使用嵌套的"选择"因为我的表太大而嵌套选择减慢我的查询感谢任何帮助

sql-server sql-server-2000 greatest-n-per-group

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

if语句在sql中使用查询

我想问一下如何使用IF statementin 进行条件检查SQL,类似下面的例子.

if (select* from table where id = @id) = 1 --if this returns a value

insert statement


else

update statement

go
Run Code Online (Sandbox Code Playgroud)

或类似的东西,如使用存储过程...

if (exec SP_something 2012, 1) = 0 

insert statement

else

update stement
Run Code Online (Sandbox Code Playgroud)

或者可能在sql语句中使用UDF,如...

if (select dbo.udfSomething(1,1,2012)) = 0 

insert statement

else

update statement

go
Run Code Online (Sandbox Code Playgroud)

sql sql-server stored-procedures if-statement sql-server-2000

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