标签: sql-server-2000

SQL Server 2000命令禁用用户帐户

我需要在sql server版本2000中禁用一些用户帐户.以下sql命令给我一个"登录'附近的错误语法"错误.用户名有效且拼写正确,因此我想知道版本2000的命令语法是否不同.

ALTER LOGIN exampleuser DISABLE
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2000

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

从multilpe表和数据库查询数据的最佳方法是什么?

我有5个数据库,代表该国的不同地区.在每个数据库中,有几百个表,每个表有10,000-2,000,000个事务记录.每个表都是相应区域中客户的表示.这些表中的每一个都具有相同的模式.

我想查询所有表,就像它们是一个表一样.我能想到的唯一方法是创建一个联合所有表的视图,然后只针对它运行我的查询.但是,客户表将一直在变化(因为我们获得和失去客户),因此我必须更改我的视图的查询以包括新表(或删除不再使用的表).

有没有更好的办法?

编辑

在回应评论时,(我也将此作为对答案的回复):

在大多数情况下,我不会删除任何表格,它们将保留用于历史目的.正如我在一篇回复中发表评论时,其想法是减少较小客户(一个只有10,000条记录)的时间来查询自己的历史记录.大约有1000个客户平均有1,000,000行(并且正在增长).如果我要将所有记录添加到一个表中,那么该表中将有近十亿条记录.我还以为我正在计划未来,因为当我们说5000个客户时,我们没有一个巨大的表来保存所有交易记录(这可能是我的想法中的错误).那么,最好不要像我一样划分记录吗?我应该将它们全部混合到一张桌子里吗?对客户ID进行索引是否可以防止向小客户查询数据的延迟?

sql sql-server sql-server-2000

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

我可以获取varchar值不能转换为datetime的行列表吗?

我有一个遗留的SQL Server 2000数据库,其中有一列具有一个日期,无论出于何种原因,该日期都存储为varchar而不是datetime.我想对这些数据进行查看,并使用datetime字段而不是varchar来更轻松地对字段进行报告.好消息是,大多数值看起来应该能够直接投射到日期时间.

当然,显然有一些字段以这样的方式输入,即它们不能转换为日期时间.为了清楚起见,这是表格的外观:

CREATE TABLE dbo.user
(
    ...
    birthdate varchar(10)
    ...
)
Run Code Online (Sandbox Code Playgroud)

视图看起来像这样:

CREATE VIEW dbo.UserView
AS
SELECT ...
       CAST(u.birthdate AS datetime) AS birthdate
       ...
FROM user u
WHERE ...
Run Code Online (Sandbox Code Playgroud)

有什么办法可以:

  1. 获取生日日期不能投入日期时间的所有行的列表,以防我可以修复它?
  2. 在我无法修复该值的情况下,使值显示为NULL或者甚至可能是显然不是用户的真实生日的东西?

sql-server datetime varchar casting sql-server-2000

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

SQL表"指针"?

使用SQl Server 2000我有一个存储过程连接2个表,然后返回数据.我希望这个sp能够为我传入它的任何表名执行此操作,否则我将拥有完全相同的代码,除了表名20次左右在一个巨大的if语句中.基本上,我如何使用变量指向表,或者是允许的?谢谢.

sql variables stored-procedures sql-server-2000

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

如何使用公用表表达式将SQL查询转换为一个(对于SQL Server 2000)

我刚刚找到了一个适当的解决方案,如何找到所有列中按键重复但不重复的行?编码存储过程,然后了解到数据库卡在SQL Server 2000上.

当然,我的解决方案很大程度上依赖于公用表表达式.

任何人都可以为我提供一套转换回SQL Server 2000方言的文件吗?

请注意,我有像这样的东西:

;
WITH CTE1 AS ( ... ),
CTE2 AS (SELECT ... FROM CTE1 ... ),
CTE3 AS (SELECT ... FROM CTE1 INNER JOIN CTE2 ...)
SELECT * FROM CTE3
WHERE criteria
ORDER BY sequence
Run Code Online (Sandbox Code Playgroud)

这似乎会让事情变得更有趣......


更新:没有CTE是递归的.

sql migration sql-server-2005 sql-server-2000

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

在T-SQL中,如何在子查询中引用表变量?

我已经声明了一个表变量'@t',并正确执行了'INSERT-INTO-SELECT'.当我试图通过对每组行编号进行一些额外计算来查询表变量时,我在使用'@t'直接使用"必须声明变量"或使用'@t'的别名时出现"无效对象名称"错误".请提出建议.

SELECT 
    *,
    (SELECT COUNT(*) FROM "LTV" "COUNTER"
     WHERE 
        "COUNTER"."Collateral_ID" = "LTV"."Collateral_ID"
        AND
        "COUNTER"."m_il_no" = "LTV"."m_il_no"
        AND
        "COUNTER"."Ref_Key" <= "LTV"."Ref_Key"
     GROUP BY "COUNTER"."Collateral_ID", "COUNTER"."m_il_no"
    ) "MIL_IDX"

FROM @t AS LTV
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2000 table-variable

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

SQL Server从触发器触发异步更新?

如果用户将行插入表中,我希望SQL Server执行一些额外的处理 - 但不是在用户事务的上下文中.

例如,用户提供对文件夹的读访问权:

UPDATE Folders SET ReadAccess = 1
WHERE FolderID = 7
Run Code Online (Sandbox Code Playgroud)

就用户而言,我希望这是原子操作的结束.实际上我现在必须找到所有子文件和文件夹并给它们ReadAccess.

EXECUTE SynchronizePermissions
Run Code Online (Sandbox Code Playgroud)

这是一个可能很长的操作(超过2秒).我想这个冗长的操作发生" 后来 ".它可能在0秒后发生,并且在碳单元有机会考虑之前,异步更新已完成.

如何在需要(即触发)时异步运行此必需操作?

理想的是:

CREATE TRIGGER dbo.Folders FOR INSERT, UPDATE, DELETE AS
   EXECUTEASYNCHRONOUS SynchronizePermissions
Run Code Online (Sandbox Code Playgroud)

要么

CREATE TRIGGER dbo.Folders FOR INSERT, UPDATE, DELETE AS
   EXECUTE SynchronizePermissions WITH(ASYNCHRONOUS)
Run Code Online (Sandbox Code Playgroud)

现在这发生在触发器上:

CREATE TRIGGER dbo.Folders FOR INSERT, UPDATE, DELETE AS
   EXECUTE SynchronizePermissions
Run Code Online (Sandbox Code Playgroud)

并且用户每次对Folders表格进行更改时都被迫等待3秒钟.

我想过要在用户上创建一个每分钟运行一次的计划任务,并检查一个PermissionsNeedSynchronizing标志:

CREATE TRIGGER dbo.Folders FOR INSERT, UPDATE, DELETE AS …
Run Code Online (Sandbox Code Playgroud)

sql-server asynchronous sql-server-2000

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

我可以根据表中的值返回一个字符串吗?

请考虑以下查询:

SELECT operation, [...] FROM tableName

operation字段将检索1到4之间的整数.我想要做的是根据整数值为SQL查询中的变量赋值operation.

如果由我决定,我会有一个相应的表,其中包含每个操作的名称,在这种情况下,a JOIN将获取操作字符串.不幸的是,我不控制数据库.

我不知道这是否是SQL可以做的事情,我当然可以使用PHP迭代返回的数据来执行此任务,但是如果可能的话,在一次点击中完成所有操作都是有意义的.

sql sql-server-2000

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

使用BETWEEN子句

每当你编写一个需要过滤掉一系列值的行的查询时 - 那么我应该使用BETWEEN或者<=>=

哪一个性能更好?

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

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

SQL:如何在多个列上选择一个表的公共行

我有一张桌子:

create table a (page int, pro int)
go
insert into a select 1, 2
insert into a select 4, 2
insert into a select 5, 2
insert into a select 9, 2
insert into a select 1, 3
insert into a select 2, 3
insert into a select 3, 3
insert into a select 4, 3
insert into a select 9, 3
insert into a select 1, 4
insert into a select 9, 4
insert into a select 12, …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2000 rows

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