我有这个sql:
ALTER TABLE dbo.ChannelPlayerSkins
DROP CONSTRAINT FK_ChannelPlayerSkins_Channels
Run Code Online (Sandbox Code Playgroud)
但显然,在我们使用的其他一些数据库中,约束具有不同的名称.如何检查名称是否存在约束FK_ChannelPlayerSkins_Channels.
我已经看到了许多不同的方法来创建和填充数字表.但是,创建和填充一个的最佳方法是什么?从最重要到最不重要的"最佳"被定义:
如果你不知道数字表是什么,请看这里:我为什么要考虑使用辅助数字表?
使用Sql Server 2005 Profiler,您可以跟踪哪些事件,列和过滤器以查找最慢的查询和存储过程?
慢=大于N秒,为了争论10.
我需要在网页上显示一个大表,并且需要阻止第一列和第一行滚动. 我想动态设置此表的垂直大小(在一些静态大小的页眉/页脚内容之间)以使其尽可能高,而不强制浏览器窗口具有垂直滚动条.
browser window\/
+--------------------------------------------------------------+ /\
| /\ /\ /\ /\ /\ /\ /\ /\ | fixed static
| web page header fields and text | | size
| \/ \/ \/ \/ \/ \/ \/ \/ |__\/__
| +----<<<table-scrollbar>>>>>----------------+ | /\
|+--------------+--------+--------+--------+--------+-------+ | |
|| | |colspan | | | fixed | | |
|| fixed | fixed | fixed | fixed | fixed | more> | | |
|+--------------+--+--+--+---+----+--+--+--+--------+-------++ | |
|| fixed | | | | | …Run Code Online (Sandbox Code Playgroud) 我一直使用INNER JOIN和LEFT OUTER JOIN.但是,我似乎永远不需要RIGHT OUTER JOIN.
我已经看到很多讨厌的自动生成的SQL使用正确的连接,但对我来说,这段代码是不可能的.我总是需要使用内部和左侧连接重写它来制作它的头部或尾部.
有没有人真正使用Right连接编写查询?
我们有一个大型应用程序,主要用SQL Server 7.0编写,其中所有数据库调用都是存储过程.我们现在运行SQL Server 2005,它提供了更多的T-SQL功能.
在几乎所有SELECT,INSERT,UPDATE和DELETE之后,@@ ROWCOUNT和@@ ERROR被捕获到局部变量中并对问题进行评估.如果出现问题,则执行以下操作:
它们都不检查行(只有在知道的情况下),并且一些不同的日志/调试信息或多或少.此外,行逻辑是从错误逻辑拆分的某些时间(在更新中,在WHERE子句中检查并发字段,行= 0表示其他人已更新数据).但是,这是一个相当通用的例子:
SELECT, INSERT, UPDATE, or DELETE
SELECT @Error=@@ERROR, @Rows=@@ROWCOUNT
IF @Rows!=1 OR @Error!=0
BEGIN
SET @ErrorMsg='ERROR 20, ' + ISNULL(OBJECT_NAME(@@PROCID), 'unknown')
+ ' - unable to ???????? the ????.'
IF @@TRANCOUNT >0
BEGIN
ROLLBACK
END
SET @LogInfo=ISNULL(@LogInfo,'')+'; '+ISNULL(@ErrorMsg,'')+
+ ' @YYYYY=' +dbo.FormatString(@YYYYY)
+', @XXXXX=' +dbo.FormatString(@XXXXX)
+', Error=' +dbo.FormatString(@Error)
+', Rows=' +dbo.FormatString(@Rows)
INSERT INTO MyLogTable (...,Message) VALUES (....,@LogInfo)
RETURN 20
END
Run Code Online (Sandbox Code Playgroud)
我正在考虑用TRY-CATCH T-SQL替换我们如何做到这一点.我已经阅读了TRY ... CATCH(Transact-SQL) …
我有一个H2数据库(http://www.h2database.com),我想通过简单的简单sql脚本(例如填充测试数据库)将文件插入BLOB字段.我知道如何通过代码来做到这一点,但我找不到如何做sql脚本本身.
我试图通过这条路,即
INSERT INTO mytable (id,name,file) VALUES(1,'file.xml',/my/local/path/file.xml);
Run Code Online (Sandbox Code Playgroud)
但这失败了.
在代码(例如java)中,很容易创建一个File对象并将其传递,但直接从sql脚本中,我被卡住了......
任何的想法 ?
大卫
我有两个长时间运行的查询,它们都在事务上并访问同一个表但在这些表中完全分开的行.这些查询还会根据这些查询执行一些更新和插入.
似乎当它们同时运行时会遇到某种类型的锁定,并且当它更新其中一行时,它阻止了任务完成并锁定.我正在对正在读取的行使用独占行锁,并且在进程上显示的锁是lck_m_ix锁.
两个问题:
如果你小心并且在所有内容周围使用TRY-CATCH,并且你真的需要使用以下错误回滚:
SET XACT_ABORT ON
Run Code Online (Sandbox Code Playgroud)
换句话说,是否有任何错误,TRY-CATCH将错过SET XACT_ABORT ON将处理?
我正在运行一个插入脚本,该脚本应该从SSMS将13,381行插入到空白数据库中.它告诉我"查询已完成但有错误"并且只插入了13357行.
错误列表中没有显示任何内容.如何找到脚本中的错误?
谢谢!
sql-server ×7
sql ×3
blob ×1
css ×1
h2 ×1
html ×1
html-table ×1
javascript ×1
jquery ×1
locking ×1
profiling ×1
scripting ×1
t-sql ×1
transactions ×1