标签: sql-server-2000

如何更新SQL Server 2000中的text或ntext字段

所以我需要更新一个文本字段.UPDATE语句或WRITETEXT语句在下面使用时都不起作用

CREATE TABLE MyTable (IDField int, MyField text)
INSERT INTO MyTable (IDField) SELECT 1

DECLARE @Data1 varchar(8000), @Data2 varchar(8000), @ptrval binary(16)

SELECT @Data1 = REPLICATE('1',8000)
SELECT @Data2 = REPLICATE('2',8000)

-- this sets MyField to string of only 8000 characters
UPDATE MyTable SET MyField = @Data1 + @Data2 WHERE IDField = 1 


SELECT @ptrval = TEXTPTR(MyField ) 
FROM MyTable 
WHERE IDField = 1 

-- this causes an error: Incorrect syntax near '+'.
--WRITETEXT MyTable.MyField @ptrval @Data1 + @Data2
Run Code Online (Sandbox Code Playgroud)

当局部变量不能是TEXT类型时,我该怎么做呢?(如果我有SSQL Server 2005,我会使用varchar(max) …

sql-server sql-server-2000

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

SQL Server - 如何管理表中的分层数据?

我使用SQL Server 2000.

假设我有两个表,如下所示:

Area
----------------------------------
ID| Name   | HierarchyLevel
----------------------------------
1 | World  |     1
2 | America|     2
3 | Europe |     2
4 | Africa |     2
5 | USA    |     3
Run Code Online (Sandbox Code Playgroud)

AreaHierarchy
------------------------
ID | ParentID | ChildID
------------------------
 1 |   1      |    2
 2 |   1      |    3
 3 |   1      |    4
 4 |   2      |    5
Run Code Online (Sandbox Code Playgroud)

哪里

AreaHierarchy.ParentID和AreaHierarchy.ChildID是Area.ID的FK

我怎样才能找到美国的第n位父母?

没有循环可能吗?

可能不是.

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

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

不应该返回T-SQL查询返回项目

这是场景.有问题的列称为'datein',它的类型是'datetime'.对于'datein',我有三行,值为'2009-10-01 00:00:00.000'.为什么此查询返回上述行?

SELECT  *
FROM    t_call AS tc
WHERE   tc.datein >= '2009-09-30 00:00:00.000'
        AND tc.datein <= '2009-09-30 23:59:59.999'
Run Code Online (Sandbox Code Playgroud)

运用

SELECT  *
FROM    t_call AS tc
WHERE   tc.datein BETWEEN '2009-09-30 00:00:00.000'
        AND '2009-09-30 23:59:59.999'
Run Code Online (Sandbox Code Playgroud)

返回相同的结果

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

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

更新语句错误:子查询返回的值超过1

我正在尝试更新列中的所有记录,以便它们以"CD"开头,例如DCE206将成为CDE206.

UPDATE table
SET column = REPLACE(column1, 'DC', 'CD')
WHERE column1 LIKE 'DC%'
Run Code Online (Sandbox Code Playgroud)

我使用上面的更新语句,但出现以下错误

'子查询返回的值超过1.当子查询跟随=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做.

有什么我可以在声明中更改以实现这一点,或者我需要调查使用游标.

我正在使用SQL Server 2000.

sql sql-server sql-server-2000 subquery sql-update

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

使用COMMIT和ROLLBACK进行多个SQL更新的Delphi应用程序

在将SQL查询嵌入到多次调用SQL for Table Updates的应用程序中时,是否可以使用SQL BEGIN TRANSACTION,COMMIT TRANSACTION,ROLLBACK TRANSACTION.例如,我有以下代码:

Q.SQL.ADD(<UPDATE A RECORD>);
Q.ExecSQL;

Q.Close;
Q.SQL.Clear;
Q.SQL.ADD(<Select Some Data>);
Q.Open;
Run Code Online (Sandbox Code Playgroud)

设置一些变量

Q.Close;
Q.SQL.Clear;
Q.SQL.ADD(<UPDATE A RECORD>);
Q.ExecSQL;
Run Code Online (Sandbox Code Playgroud)

我想要做的是如果第二次更新失败,我想回滚第一个事务.

如果我为BEGIN,COMMIT,ROLLBACK设置一个唯一的表示法,以便指定提交或回滚的内容,是否可行.

即在第一次更新之前指定BEGIN TRANSACTION_A然后在上次更新后指定COMMIT TRANSACTION_A

我希望这是有道理的.如果我在SQL存储过程中执行此操作,那么我将能够在过程的开始和结束时指定它,但由于进程块和重载SQL上的死锁,我不得不将代码分解为可管理的块服务器.

delphi sql-server-2005 sql-server-2000

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

SQL Server,T-SQL运算符可以像变量一样使用吗?或类似的东西

我想做的是这样的事情

DECLARE @operator nvarchar;
SET @operator = 'AND'

SELECT * FROM MyTable
WHERE first_column = "1" @operator second_columnt = "2"
Run Code Online (Sandbox Code Playgroud)

有没有办法实现像那样的逻辑?

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

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

使用查询分析器代码从SQL Server 2000导出到Excel

从SQL Server 2000将数据导出到Excel的最简单方法是什么?

我想从我可以输入查询分析器的命令中执行此操作.

我希望列名出现在第1行.

sql sql-server sql-server-2000 query-analyzer

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

如何在T-SQL中编写简单的插入或更新?

我有一个流程,我不想跟踪某些内容是创建还是更新.跟踪会很复杂.我想执行创建或更新.架构就像......

col1 varchar() (PK)
col2 varchar() (PK)
col3 varchar() (PK)
col4 varchar()
Run Code Online (Sandbox Code Playgroud)

我正在考虑做

TRY
{
    INSERT ...
}
CATCH(DuplicateKeyException)
{
    UPDATE ...
}
Run Code Online (Sandbox Code Playgroud)

你有什么建议?


我想确保我理解其他最高投票的答案.鉴于我的模式,UPDATE总是会发生(即使使用INSERT),但插入只发生在它不存在的地方?

 //UPSERT
INSERT INTO [table]
SELECT [col1] = @col1, [col2] = @col2, [col3] = @col3, [col4] = @col4
FROM [table]
WHERE NOT EXISTS (
    -- race condition risk here?
    SELECT  1 
    FROM [table] 
    WHERE [col1] = @col1 
        AND [col2] = @col2
        AND [col3] = @col3
)

UPDATE [table]
SET [col4] = @col4
WHERE [col1] = @col1 …
Run Code Online (Sandbox Code Playgroud)

sql sql-server-2000 upsert

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

如何用float显示尾随零

使用SQL Server 2000

使用浮点数时不显示零.

询问

insert into table1 values ('01.10')
insert into table1 values ('10.50')
insert into table1 values ('02.02')
Run Code Online (Sandbox Code Playgroud)

产量

Values (datatype is float)

01.1
10.5
02.02
...
Run Code Online (Sandbox Code Playgroud)

如何显示最后的零

预期产出

值(数据类型为float)

01.10
10.50
02.02
...
Run Code Online (Sandbox Code Playgroud)

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

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

SQL Union All Query中的归类冲突

有一个Union All查询,如下所示.在SQL Server中触发时,我收到错误

"无法解决SELECT语句中第1列的排序规则冲突."

请问,在哪里可以使用此Union All查询添加Collat​​e database_default语句?

select  OrgCode,null as OrgName,
Q1_A1 as A1Value,Q1_a2 as A2Value,'Quarter 1' as dt,((Q1_A1-Q1_A2)/case when Q1_A1<>0 then Q1_A1 else null end )*100 Percentage
from #Tabl_Quarter_Calculation

union all

select  OrgCode,null as OrgName,Q2_A1 as A1Value,Q2_a2 as A2Value,'Quarter 2' as dt,((Q2_A1-Q2_A2)/case when Q2_A1=0 then null else Q2_A1 end  )*100 Percentage
from #Tabl_Quarter_Calculation

union all

select [OrgCode],[OrgName],a1Value,a2Value,dt
,cast((a1value-a2value)/cast(a1value as real)*100 as varchar(10))+'%' Percentage
 from #Tbl_Display1

union all

--4 week average
select [OrgCode],[OrgName],sum(a1Value) as a1Value,Sum(a2Value) as a2Value,max(dt) as dt
,cast((sum(a1value)-sum(a2value))/cast(sum(a1value) …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2000

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