给定
create table rating (
ID int identity(1,1) primary key,
PersonID int,
Ratingdate date,
rating varchar(2)
);
insert into rating values ( 1, '2010-08-04' , 'A3');
insert into rating values ( 1, '2010-08-14' , 'A1');
insert into rating values ( 2, '2010-08-04' , 'G2');
insert into rating values ( 2, '2010-08-14' , 'G1');
insert into rating values ( 3, '2010-08-04' , 'G1');
insert into rating values ( 3, '2010-08-10' , 'G1');
insert into rating values ( 3, '2010-08-14' , 'G3'); …Run Code Online (Sandbox Code Playgroud) 我继承了几个使用 GUID 作为 PK 的数据库。并非所有数据类型都是唯一标识符,大多数是 varchar(50) 和一些 varchar(100)。字段是真正的 GUID,有些是由
myID = 'xxx'+convert(varchar(40),newID())
总的来说有点乱
此设计对性能有何影响?是否值得重新处理表以转换数据类型。表通常约为 1/2 M 记录,其中有几个表在 2-4M 记录范围内。
这个问题的推动力是我正在尝试(不成功)优化一个连接 24 个表和视图的过程,而服务器处理得不好。
感谢您的任何见解
我有一个存储过程,它使用游标,每次获取一个重复项SELECT,一次确定找到的 ID 数量 ( SELECT COUNT(ID) FROM TableA WHERE something.. @cur_var),如果该值COUNT(ID)大于指定值,则为UPDATE另一个表发出一个,WHERE使用上述 ID ( SELECT ID FROM TableA WHERE something.. @cur_var) 。
这个想法是将其SELECT存储在变量中(伪代码idlist = SELECT COUNT(ID) FROM TableA WHERE something.. @cur_var)。然后在(伪代码length(idlist)中使用该列表的长度。在这种情况下,在语句 (再次伪代码,)中再次使用该列表IFIF>100WHEREUPDATE TableB SET value = @cur_var WHERE ID IN idlist
我希望足够具体,我想将 a 的结果保存SELECT在变量中。然后使用结果WHERE IN variable和变量中的行数在IF.
使用 Microsoft SQL Server Enterprise Edition …
我们都知道 Sql Server 分析服务 (SSAS) 为商业智能应用程序提供在线分析处理 (OLAP) 和数据挖掘功能。
谁在他们的项目中使用过这项服务?我需要一些关于这真正涉及什么的指导?
我的组织使用 Active Directory 来控制对我们数据库的访问。构建 Web 应用程序并作为我们 CI 过程的一部分,我想在连接字符串中指定凭据。
是否可以在连接字符串中传递 AD 凭据,或者我是否需要这些项目的标准 SQL 帐户?
sql-server-2005 sql-server-2008 authentication authorization
有什么快速的方法可以找出正在访问您的数据库的内容,尤其是当日志文件变得疯狂时。SQL探查器?如果是这样,如何?
环境sql server 2005 sp3
我有一个以 INT 作为输入的存储过程。我想在调用存储过程期间将 CHAR 转换为 INT。看来我不能那样做。我在@foo 之前收到语法错误。我没有看到它请有人帮我找到它。非常感谢。
CREATE PROCEDURE testme
@test AS INT
AS
BEGIN
SELECT @TEST
END
DECLARE @foo AS CHAR(6)
set @foo = '11test'
EXEC testMe @test = CAST(Substring(@foo,1,2) as int)
Run Code Online (Sandbox Code Playgroud) 我想知道维护计划任务中有关备份数据库任务的信息在数据库或文件系统中的哪个位置。
我可以在 msdb.dbo.sysjobs 中找到工作我可以在 msdb.dbo.sysmaintplan_subplans 中找到子计划
但我需要找到任务的存储位置和方式。
任何帮助将不胜感激。
我们有两台装有 SQL Server 2005 的数据库服务器,每台服务器有两个数据库。辅助服务器有两个 SQL Server 实例:一个用于开发,另一个用于报告。辅助服务器上的两个实例每天从主服务器恢复备份,但只有开发实例可以进行数据修改。
这两个数据库来自不同的应用程序,但一个数据库具有更改另一个数据库上的数据的触发器。触发器更新第二个数据库硬编码其名称,如UPDATE database2..thetable
一个数据库可以通过来自一个应用程序或存储过程的 SQL 查询从另一个数据库获取数据,硬编码为 SELECT FROM database2..thetable
我们正在考虑在辅助服务器(报告和开发)上加入两个 SQL Server 实例以简化管理和内存管理,但我找不到解决方案让触发器和存储过程动态地自动调用另一个数据库,并使用另一个名称使用相同的名称后缀。前任:
实例:RS
实例:DEV
进入:
对此有哪些可能的解决方案?我可以考虑一些,但它们太复杂了:
创建要通过 EXEC() 执行的动态 T-SQL。这让事情变得更加复杂,因为触发器有很多用于 UPDATES、INSERTS 和 DELETES 的代码。
为每组数据库名称创建单独的触发器和存储过程(一个用于 DB1,另一个用于 DB1_DEV,另一个用于 DB1_RS)。这种方法似乎无法扩展......
使查询中的数据库名称动态:INSERT INTO @db..table。不幸的是,SQL Server 不支持这个... :-(
有没有更简单有效的解决方案?
谢谢!
在 DMZ 中的 SQL Server 2005 实例上,我们安装了 BIDS,但没有安装 SSIS 服务。
如果我在该服务器上有一个 SSIS 包,我是否仍然可以安排在没有 SSIS 服务的情况下运行它?
我尝试使用 DTexec 但它无法找到该包。
sql-server-2005 ×10
sql-server ×4
count ×1
instance ×1
maintenance ×1
optimization ×1
oracle ×1
profiler ×1
ssis ×1
update ×1