标签: sql-server-2000

使用SQL Server 2000检查数值

如何知道VARCHAR字段的值是否可以成功转换为整数?

我想大规模地将记录从一个表插入另一个表...

sql-server sql-server-2000 numeric

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

SQL Server 2000与SQL Server 2008查询性能

我正在与一个从SQL Server 2000数据库转换过SQL Server 2008的客户端工作,其中一个查询在SQL Server 2000上的时间大大增加.

但是,如果我在DB中将兼容级别更改为2008,则查询就像火箭一样(快40-50倍).

该查询确实使用了许多UDF.

我的问题: - 在SQL Server 2008中运行SQL2000兼容性是否存在问题 - SQL Server 2008在使用UDF时是否提高了性能?

sql sql-server-2000 sql-server-2008

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

删除所有主键

这听起来像是一个疯狂的请求.我报告的数据库没有任何外键,每个主键都是identity_column.这使得使用诸如TOAD之类的工具变得困难,因为Intellisense通过读取PK和FK关系来工作.

任何人都有一个脚本从数据库中的每个表中删除主键,所以我可以用"正确的"PK替换它们并添加FK以协助报告?

要忘掉"不要做!!!"的意思 回复,让我明确表示我不会对我的生产数据库执行此操作,而是将其复制到另一台服务器上.

任何意见,将不胜感激.

-------编辑使用正确的信息更新.----------------

谢谢你们,但我意识到我犯了一个错误.几乎每个表都有一个具有身份属性的"identity_column".该身份是聚集索引.但是,它未被指定为主键.

首先,主键和聚簇索引之间有什么区别?

其次,如何编写所有聚簇索引的脚本?这会有用吗?

SELECT 
  'ALTER TABLE ' + OBJECT_NAME(OBJECT_ID) + ' DROP CONSTRAINT ' + name 
FROM sys.indexes WHERE type_desc = 'CLUSTERED'
Run Code Online (Sandbox Code Playgroud)

谢谢你的耐心

t-sql constraints sql-server-2000 information-schema

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

将SQL Server 2008转换为2000

我希望将转换为2008格式的数据库转换回2000格式.我已经尝试了SQL Server Management Studio中提供的所有方法.导出数据,脚本数据库,所有这些都失败了.导出似乎不会导出所需的所有内容,生成的脚本始终包含错误.数据库非常庞大,无法在生成的脚本中找到错误.

有没有人有任何建议.

sql-server sql-server-2000 sql-server-2008

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

SQL Server 2000 创建到 SQL Server 2008 的链接服务器

在 SQL Server 2000 中,我试图创建一个连接到 SQL Server 2008 的链接服务器。我尝试过的每件事都会引发一种或另一种风格的错误。

在 SQL Server 2000 企业管理器中,我:

  1. 右键单击服务器安全节点下的链接服务器,然后选择新建链接服务器...并将链接命名为“SQL2008R2”
  2. 我选择“其他数据源”单选按钮是因为我认为 SQL Server 2000 不能本地连接到 2008。
  3. 我在提供程序名称字段中选择“SQL Server Native Client 10.0”,在产品名称字段中键入“SQL2008R2”,在数据源字段中输入“VIRTUALXP-62910\SQLEXPRESS”(服务器名称和命名实例名称),将提供程序字符串留空,然后在目录字段中键入数据库名称“RWUtils”。
  4. 在安全选项卡上,我键入“Link”作为本地登录名和远程用户,然后输入密码。对于上面未列出的登录,我选择了“Not be made”单选按钮。我以前在两台服务器上设置了一个“链接”用户,使用相同的密码,可以访问正确的数据库。
  5. 我单击“确定”以创建链接。SQL2008R2 链接已创建。

当我展开刚刚创建的链接并单击“表格”时,出现错误,

错误 7416:访问远程服务器被拒绝,因为不存在登录映射。

谁能告诉我我做错了什么,或者成功创建此链接的​​正确步骤或 T-SQL 序列是什么?

非常感谢。

sql-server-2000 hyperlink sql-server-2008

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

SQL Server上的语法错误

这可能是一个愚蠢的语法错误,但我只是继续阅读我的程序,但我无法弄清楚我的错误在哪里.

消息156,级别15,状态1,行41
关键字"FOR"附近的语法不正确.

这是我的代码:

alter procedure LockReservation as
DECLARE @edition_id tinyint, @stockid  tinyint;
DECLARE @creservation CURSOR FOR select edition_id from reservation where (date_fin - GETUTCDATE()) <= 12;
open creservation;
while @@fetch_status = 0
BEGIN
    fetch creservation into @edition_id;
    DECLARE @cstock CURSOR 
        FOR select id from stock where edition_id = @edition_id;
    open cstock;
    while @@fetch_status = 0
    BEGIN
        fetch cstock into @stockid;
        select stock_id from location where location.stock_id = @stockid and archivage = 0
        if @@rowcount = 0
        BEGIN
             insert into …
Run Code Online (Sandbox Code Playgroud)

sql sql-server-2000

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

存储过程逻辑错误

我正在尝试做类似的事情 我该如何改进这个SQL查询?

但是,在那里逻辑基本上我有一个ID列表,可能有多个与之关联的值,值为Yes,No或其他字符串.对于ID x,如果任何值为Yes,则x应为Yes,如果它们都为No,则它应为No,如果它们包含任何其他值但是yes和no,则显示该值.我只想每个ID返回1行,没有重复.

但是在我的逻辑中如果所有值都是肯定的,那么显示是,如果所有值都是否则显示否,如果它是是,否或其他任何显示组合的混合

DECLARE @tempTable table ( ID int, Val varchar(1) )

    INSERT INTO @tempTable ( ID, Val ) VALUES ( 10, 'Y')
    INSERT INTO @tempTable ( ID, Val ) VALUES ( 11, 'N')
    INSERT INTO @tempTable ( ID, Val ) VALUES ( 11, 'N')
    INSERT INTO @tempTable ( ID, Val ) VALUES ( 12, 'Y')
    INSERT INTO @tempTable ( ID, Val ) VALUES ( 12, 'Y')
    INSERT INTO @tempTable ( ID, Val ) VALUES ( 12, …
Run Code Online (Sandbox Code Playgroud)

sql t-sql stored-procedures sql-server-2000

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

如何从 SQL Server 2000-2008 中位于一组名称的多个表中选择列名称

如果我有一组这样的名字:

('first', 'fname', 'firstname', 'namef', 'namefirst', 'name')
Run Code Online (Sandbox Code Playgroud)

SQL Server 2000 - 2008 中检索包含上述特定数据库的列名的不同表名的最佳方法是什么?

我想从显示的表列表中排除系统表和临时表。

SELECT so.name
FROM   sysobjects so
       INNER JOIN syscolumns sc
            ON  so.id = sc.id
WHERE  sc.name IN ('first', 'fname', 'firstname', 'namef', 'namefirst', 'name')
Run Code Online (Sandbox Code Playgroud)

我相信这是这个问题的衍生。

谢谢

sql-server sql-server-2005 sql-server-2000 sql-server-2008

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

WHERE IN 子句中的存储过程参数

我有一个存储过程,它看起来像这样:

SELECT * FROM empTable
WHERE empCode IN (@employeeCode)
Run Code Online (Sandbox Code Playgroud)

@employeeCode接受来自另一个应用程序的输入,而我无法控制该应用程序。它会给我string这样的东西:'M06', 'R02', 'B19', 'C10'

当我执行该过程时,它返回 0 行。但是,当我使用以下查询在 SQL Server 中手动运行查询时:

SELECT * FROM empTable
WHERE empCode IN ('M06', 'R02', 'B19', 'C10')
Run Code Online (Sandbox Code Playgroud)

它返回 15 行。

我怀疑当employeeCode接受输入时,它假设整个'M06', 'R02', 'B19', 'C10'为 ONE string。有人能证实这一点吗?如果这是真的,我该如何解决?

编辑:我正在使用 SQL Server 2000

sql-server stored-procedures sql-server-2000

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

如何根据另一张表的参考数据过滤一张表的数据?

我有两张桌子account_agentbulk_index. 每个表上的数据如下

account_agent

name         code         account         remark         scheme
avi          10           151362          first          as
babi         11           123478          new            as
avi          10           151721          new            as
avi          10           151765          new            as
sam          sas/01       925458          tin            sas
Run Code Online (Sandbox Code Playgroud)

bulk_index

agentcode         account          customer_name
10                151362           Alok
22                265721           Rohan
10                151721           Akash
Run Code Online (Sandbox Code Playgroud)

使用这些表,我希望在account_agent表上的结果如下

account_agent

name         code         account         remark
avi          10           151362          first
avi          10           151721          new
Run Code Online (Sandbox Code Playgroud)

我试过查询

select * from account_agent where code = '10' and account = (select account …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2000

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