是否可以将表值参数用作存储过程的输出参数?
这是,我想在代码中做什么
/*First I create MY type */
CREATE TYPE typ_test AS TABLE
(
id int not null
,name varchar(50) not null
,value varchar(50) not null
PRIMARY KEY (id)
)
GO
--Now I want to create stored procedu whic is going to send output type I created,
--But it looks like it is inpossible, at least in SQL2008
create PROCEDURE [dbo].sp_test
@od datetime
,@do datetime
,@poruka varchar(Max) output
,@iznos money output
,@racun_stavke dbo.typ_test READONLY --Can I Change READONLY with OUTPUT …Run Code Online (Sandbox Code Playgroud) 我正在做一个项目,我需要每天在一张表中更改大约 36K 条记录。我想知道什么会表现得更好:
对我来说,删除所有行并插入新行会更容易,但如果这会使表和索引碎片化并影响性能,那么我更愿意在可能的情况下进行更新并仅在必要时删除/插入。
这将是一项夜间服务,我不希望提高流程本身的速度。我更关心对这个表的查询性能,我已经有 8900 万条记录,以及这个每晚的过程将如何影响它。
对于这个夜间流程,我应该删除/插入记录还是应该更新现有记录(在可能的情况下)?
performance sql-server-2005 sql-server application-design fragmentation
SQL Server Express Edition(2005 和 2008)是否支持安装、启用和运行 CLR 存储过程和函数。
sql-server-2005 sql-server-2008 sql-server sql-server-express sql-clr
在 MS SQL Server 2005 中,我正在编写一个带有条件排序的查询,我的问题是我不知道如何使用两列进行条件排序?
如果我写了这样的代码,它就可以正常工作
select
*
from
table
order by
case @pkr
when 'kol' then kol
when 'nci' then nci
end
Run Code Online (Sandbox Code Playgroud)
我不知道如何对两列或更多列进行条件排序
select
*
from
table
order by
case @pkr
when 'KOL-NCI' then kol,nci
when 'kol-MPCI' then kol,mpci
end
Run Code Online (Sandbox Code Playgroud)
有一个制作动态 TSQL 并使用的想法,sp_executesql但我仍在寻找更好的想法?
我将从头开始重建一台 IBM 3400 服务器。此服务器专用于在 Windows 2008 R2 上运行的 SQL Server 2008 实例。
我将进行新的 RAID 配置。我在机器内部有 6 个 SCSI 73 GB 驱动器和一个 IBM ServerRAID 8K 控制器。什么是设置 RAID 级别的好方法?我的控制器上应该有两个、三个还是一个字段?
我正在考虑制定以下解决方案之一:
条带单元尺寸越大越好吗?
该服务器将成为复制数据库的订阅者。它的主要任务是报告和数据检索,只有复制代理进行写入。数据库的大小约为 90 GB。
我应该如何转义%参数中的字符,以便我重新调整RAISERROR我的消息
declare @msg varchar(max) = (SELECT ' Message with % ' AS MSG)
if @msg is not null
begin
RAISERROR (@msg ,16,1);
end
Run Code Online (Sandbox Code Playgroud)
这将引发错误消息
消息 2787,级别 16,状态 1,第 4 行
无效的格式规范:“%”。
对于最终用户,此消息是不可读的。
我的消息是从数据库生成并设置此消息。
我避免收到错误消息的方法是替换
set @msg = REPLACE(@msg,'%','P')
Run Code Online (Sandbox Code Playgroud)
但是我还是不知道怎么加%符号
我想知道如何实现 SQL 以获得按类似谓词的最佳匹配排序的结果。我在数据库中有 10 万篇文章,当用户按名称的一部分调用某些项目时。我想显示按查询的最佳匹配排序的结果。
我会试着用伪代码来描述
select
*
from
articles
where item_nale like '%'+@user_input +'%'
order by "BEST MATCH"
Run Code Online (Sandbox Code Playgroud) 我有一个我依赖的愚蠢的应用程序,里面有硬编码的连接字符串。
为了提高我的 SQL Server 的安全性,我想让 SQL 用户与内部应用程序的硬编码相同,但我希望该用户只能从特定主机(IP 地址)使用 SQL Server。
我正在制作一项需要保存按年月组合分组和计算的数据的服务。我知道如何计算数据并将其放在新表上。但是我很困惑应该使用哪种数据类型来存储月 - 年值。这是我所考虑的。
我应该选哪个?或者有其他解决方案。有人可以根据性能建议哪种方式将是一个好的解决方案,因为大多数查询将在 where 解决方案中使用数据范围,而我的新表将有大约 2-5 百万条记录。
通常我getdate()在我的 where 子句中使用函数来回到过去。就像是:
DOC.DATUM >= DATEADD(DD,-1*SSN_SDO.DANA_ZA_POVRAT,GETDATE())
Run Code Online (Sandbox Code Playgroud)
如果我首先声明一个日期参数并在查询中使用它,SQL Server 2008R2 会执行更快的查询吗?
declare @dateNow date = getdate()
...
where
DOC.DATUM >= DATEADD(DD,-1*SSN_SDO.DANA_ZA_POVRAT,@dateNow )
Run Code Online (Sandbox Code Playgroud) sql-server ×8
performance ×3
datatypes ×2
order-by ×2
t-sql ×2
date-format ×1
parameter ×1
raiserror ×1
security ×1
sql-clr ×1