如果没有存储过程,如何在ASP.NET中分页从SQL Server中检索的结果集?
现在,我正在使用Ms sql server 2000,我想将我的数据存储为中文字体的unicode.但我不知道它可以存储这种类型吗?如果没有,有人可以指导我吗?
谢谢,索波林
在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."我找到了答案,但我已经输入了这个问题,我将发布它!:-))
我在表中有如下数据.
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更新表数据,其中字段数据不为空.请让我知道更新表数据的查询.
感谢和问候,
穆拉利
我正在尝试从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) 我目前正在使用相对较大的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 Server 2000中,我需要在客户订单的临时表中列出年份,月份作为整数.
如果月份不存在,我仍然需要列出年,月,0.00美元.
在SQL Server 2000中执行此操作的最佳方法是什么?
01/01/2010到07/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美元?
我的任务是将一些数据从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.
知道我哪里错了吗?任何帮助非常感谢.
我有这张桌子
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)
我不想使用嵌套的"选择"因为我的表太大而嵌套选择减慢我的查询感谢任何帮助
我想问一下如何使用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