该问题是指此msdn 文档中的 number 参数
如果不这样做,您可以在 SQL-Server 中创建多个按编号区分的存储过程,然后一键删除它们。
create procedure dbo.stored_proc1 as select 1
go
create procedure dbo.stored_proc1;2 as select 2
go
exec stored_proc1
-- returns 1
go
exec stored_proc1;2
-- returns 2
go
drop stored_proc1
-- drops both
go
Run Code Online (Sandbox Code Playgroud)
我想知道这个功能是否被任何人用于有用的东西,或者它只是一个历史性的好奇心。
对于我们即将托管的应用程序,我需要在 SQL Server 2008 Web 版和 SQL Server 2008 企业版之间进行选择。没有任何“必备”功能:应用程序当前在 SQL Express 上运行,但它会超过 SQL Express 强加的 10GB 最大大小。
我正在查看此比较图表,以及本页“可扩展性和性能”中最重要的表格。随着表变大,诸如“表和索引分区”之类的功能对于保证性能速度至关重要。但是,这需要多大的桌子尺寸?
我应该使用什么策略来确定我的数据库的大小和使用情况是否需要企业版可扩展性和性能功能?
我有一个领域,人们历史上可以用来自由提供价值。我需要识别没有适当值的记录,以便我可以清理它们。
为此,我一直在 SSIS 中四处寻找。我的倾向是在某些 C# 代码中使用带有正则表达式的脚本组件,然后进行重定向。不过,我想知道 SSIS 中是否有一种方法可以在不求助于 C# 的情况下做到这一点。
我没有太多运气找到一种方法来找出有多少记录没有合适的电话号码。
请看这段代码:
create table #t1(
id int identity (1,1),
val varchar(10)
);
insert into #t1 values ('a');
insert into #t1 values ('b');
insert into #t1 values ('c');
insert into #t1 values ('d');
Run Code Online (Sandbox Code Playgroud)
现在,每当你执行这个
select *,
( select top 1 val from #t1 order by NEWID()) rnd
from #t1 order by 1;
Run Code Online (Sandbox Code Playgroud)
您将得到一个结果,其中所有行都具有相同的随机值。例如
id val rnd
----------- ---------- ----------
1 a b
2 b b
3 c b
4 d b
Run Code Online (Sandbox Code Playgroud)
我知道一种使用游标循环抛出行并获得不同随机值的方法,但这不是高效的。
一个聪明的解决方案是
select t1.id, t1.val, t2.val
from #t1 t1
join (select …Run Code Online (Sandbox Code Playgroud) 我正在争论是否最好PRIMARY KEY使用Identity Columns,我们使用显式生成唯一 id 的 UDF 。
ID_Value由1id+1在插入时让表做一个哪个实现更有意义?
sql-server-2005 sql-server uniqueidentifier identity functions
这是我的问题。我正在尝试通过完整还原将数据库移动到新服务器,然后通过快速差异备份/还原进行切换。我可以毫无问题地进行完整还原,但是在还原差异备份时,我收到以下警告:
消息 3127,级别 16,状态 1,第 1 行 恢复的数据库 'DatabaseName' 的文件 'Database_Log2' 处于失效状态,因为该数据库正在使用简单恢复模型并且该文件被标记为可读写访问。因此,只能通过分段还原来恢复只读文件。
数据库恢复并被视为联机,但由于此 DEFUNCT 文件导致任何备份操作失败,并出现以下错误:
消息 3636,级别 16,状态 2,第 1 行处理数据库 ID 10 文件 ID 6 的“BackupMetadata”元数据时出错。消息 3046,级别 16,状态 2,第 1 行遇到不一致的元数据。唯一可能的备份操作是使用 WITH CONTINUE_AFTER_ERROR 或 NO_TRUNCATE 选项的尾日志备份。消息 3013,级别 16,状态 1,第 1 行 BACKUP DATABASE 异常终止。
如果我在完整和差异上执行 RESTORE FILELISTONLY 都会给我相同的输出,这与我从源数据库上的 sys.database_files 看到的相匹配。服务器为 SQL2012 SP1,开发版。
我可以做一个完整的备份,然后立即做一个差异,并将这些文件还原到同一服务器上的不同数据库,并看到完全相同的问题,因此差异是如何创建的。如果我使用 RECOVERY 还原完整备份,则没有问题。我不知道这个文件是否曾经存在于这个数据库中,但完全有可能这个文件曾经存在并且很久以前被删除了。如果我在恢复的数据库上查询 sys.database_files,DEFUNCT 文件具有 drop_lsn 的值,这似乎证实了这一点。目前在源数据库中只有一个文件组 (PRIMARY)、4 个数据文件和一个日志文件。
有任何想法吗?
我有一个类似于之前讨论的要求:
我有两张桌子,[Account].[Balance]并且[Transaction].[Amount]:
CREATE TABLE Account (
AccountID INT
, Balance MONEY
);
CREATE TABLE Transaction (
TransactionID INT
, AccountID INT
, Amount MONEY
);
Run Code Online (Sandbox Code Playgroud)
当对[Transaction]表进行插入、更新或删除操作时,[Account].[Balance]应根据[Amount].
目前我有一个触发器来完成这项工作:
ALTER TRIGGER [dbo].[TransactionChanged]
ON [dbo].[Transaction]
AFTER INSERT, UPDATE, DELETE
AS
BEGIN
IF EXISTS (select 1 from [Deleted]) OR EXISTS (select 1 from [Inserted])
UPDATE [dbo].[Account]
SET
[Account].[Balance] = [Account].[Balance] +
(
Select ISNULL(Sum([Inserted].[Amount]),0)
From [Inserted]
Where [Account].[AccountID] = [Inserted].[AccountID]
)
- …Run Code Online (Sandbox Code Playgroud) 我想遍历值并一次从值中去除 1 个字符并显示结果。
因此,如果我有一个带有值的表:
ID
___
34679
13390
89906
Run Code Online (Sandbox Code Playgroud)
我希望结果看起来像这样
Id
----
4679
679
79
9
3390
390
90
0
9906
906
06
6
Run Code Online (Sandbox Code Playgroud) 我在设计时态数据库时遇到问题。我需要知道如何确保在商店的任何给定时间范围内我只有一个活动记录。我已经阅读了这个答案,但恐怕我无法理解触发器的工作原理。特别是,我如何将触发器工作到我现有的触发器中,以防止更新记录,而是插入新记录。我真正的问题是,当完成日期为空时,我不知道如何防止 Store 有多个生效日期。(即防止商店的 2 个活动记录)。
这就是我所拥有的,但它允许我为具有不同生效日期的商店插入新记录。
表定义:
/****** Object: Table [PCR].[Z_STORE_TEAM] Script Date: 05/09/2014 13:05:57 ******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Z_STORE_TEAM]') AND type in (N'U'))
DROP TABLE [Z_STORE_TEAM]
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Z_STORE_TEAM]') AND type in (N'U'))
BEGIN
CREATE TABLE [Z_STORE_TEAM](
[STORENUM] [int] NOT NULL,
[TEAM] [varchar](10) NULL,
[EFFECTIVE] [date] NOT NULL,
[FINISHED] [date] NULL,
PRIMARY KEY CLUSTERED
(
[STORENUM] ASC,
[EFFECTIVE] ASC
)WITH (PAD_INDEX = …Run Code Online (Sandbox Code Playgroud) SQL Server 作业运行时出现死锁。死锁发生在一个简单的 DELETE 语句上。我原以为必须运行 SELECT/UPDATE 查询才能导致死锁?但看起来是 DELETE/DELETE 死锁...
我正在寻找的是为什么我会遇到 DELETE/DELETE 死锁。这是(据我所知)传入不同的参数。
有任何想法吗?谢谢。
deadlock-list
2014-05-20 07:30:09.66 spid25s deadlock victim=process409048
2014-05-20 07:30:09.66 spid25s process-list
2014-05-20 07:30:09.66 spid25s process id=process409048 taskpriority=0 logused=0 waitresource=PAGE: 12:1:7127294 waittime=4352 ownerId=629860973 transactionname=DELETE lasttranstarted=2014-05-20T07:30:05.307 XDES=0x397219620 lockMode=U schedulerid=5 kpid=3792 status=suspended spid=150 sbid=0 ecid=3 priority=0 trancount=0 lastbatchstarted=2014-05-20T07:30:05.307 lastbatchcompleted=2014-05-20T07:30:05.307 clientapp=QSQL25 hostname=MORRIS hostpid=1528 isolationlevel=read committed (2) xactid=629860973 currentdb=12 lockTimeout=4294967295 clientoption1=671088672 clientoption2=128056
2014-05-20 07:30:09.66 spid25s executionStack
2014-05-20 07:30:09.66 spid25s frame procname=adhoc line=1 stmtstart=68 sqlhandle=0x020000000b887a18f75d0aa07c25a9b8630fca696aa0e5d2
2014-05-20 07:30:09.66 spid25s DELETE FROM dbo.UserDetailsData WHERE (Username = …Run Code Online (Sandbox Code Playgroud)