假设我在层次结构中有3个表:
TableA -> TableB -> TableC
Run Code Online (Sandbox Code Playgroud)
TableC与外键有关系TableB,并且与TableB外键有关系TableA.
如果我删除了一个记录TableA,它应该通过层次结构向下级联删除.使用ON DELETE CASCADE会很好.
但是,假设我需要INSTEAD OF触发TableC.我的理解是,INSTEAD OF触发器不能放在具有删除级联的表上.摘自MSDN:
对于INSTEAD OF触发器,对于具有指定级联操作ON DELETE的引用关系的表,不允许使用DELETE选项.
如果我必须关闭级联删除TableB->TableC,我需要使用INSTEAD OF触发器来强制执行参照完整性,然后我遇到同样的问题TableB->TableA.这是一个简单的例子,但想象一下级联路径要大得多.看起来它很容易在一条长长的瀑布路上滚雪球.
那么处理这种情况的最佳做法是什么?
我已经在Windows 7中安装了Haskell Platform 2012.我在控制台中写道cabal update,我发信息说有一个新版本的cabal.我写cabal install cabal-install.安装完成后,它告诉我cabal已安装在C:\ username\AppData\Roaming\cabal中.因此,当我cabal update再次这样做时,我正在采取相同的信息来安装新版本的cabal.我试图从配置文件更改cabal目录,但cabal忽略配置文件.Haskell只能在Unix上运行吗?谢谢
我用python编写了一个关于颜色检测的程序.但是'Erode'句子总是出现错误.这是我的计划的一部分.谢谢.
# Convert the image to a Numpy array since most cv2 functions
# require Numpy arrays.
frame = np.array(frame, dtype=np.uint8)
threshold = 0.05
#blur the image
frame=cv2.blur(frame, (5,5))
#Convert from BGR to HSV
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
#split into 3
h, s, v= cv2.split(hsv)
#red color
s = cv2.threshold(h, 15, 1, cv2.THRESH_BINARY_INV)#1-15,x>15 y=0
h = cv2.threshold(h, 245, 1, cv2.THRESH_BINARY)#245-255 x>245 y=1
h = h + s
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(3, 3))
h = cv2.erode(h, kernel)
v = cv2.sumElems(h)
Run Code Online (Sandbox Code Playgroud) 我有一个树表列ID,ParentID并Hierarchy和要生成Hierarchy列值依赖通过ParentID.为此,我使用触发器.是否存在生成层次结构列值的更好方法?
ALTER TRIGGER [TR_MyTable_BeforInsert] ON [MyTable]
INSTEAD OF INSERT
AS BEGIN
SET NOCOUNT ON;
Declare @Name NVarChar(100),
@ParentID Int
Declare DACategory Cursor For
Select A.Name, A.ParentID
From Inserted A
OPEN DACategory
FETCH NEXT FROM DACategory INTO @Name, @ParentID
While @@FETCH_STATUS=0 Begin
Insert Into MyTable (Name, ParentID, Hierarchy)
Values (@Name, @ParentID, dbo.F_MyTableGetHID(NULL, @ParentID))
FETCH NEXT FROM DACategory INTO @Name, @ParentID
End
Close DACategory
Deallocate DACategory
END
Run Code Online (Sandbox Code Playgroud)
功能:
ALTER FUNCTION [F_MyTableGetHID]
( …Run Code Online (Sandbox Code Playgroud) 有没有其他人遇到类似的问题,如下所述?
我在使用Powershell部署SQL Server 2012 dacpac数据库升级时遇到问题.详情如下所示:
它是为sql server 2012构建的dacpac文件,当我以管理员身份登录时,我试图通过Powershell从命令行运行它来应用于sql server 2012数据库.
使用"4"参数调用"Deploy"的异常:"无法确定域的身份." 在... so.ps1:17 char:8 + $ d.Deploy($ dp,$ TargetDatabase,$ true,$ DeployOptions)
编辑过的脚本(日志记录和文字更改)如下:
[System.Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\Microsoft.SqlServer.Dac.dll") | Out-Null
$d = new-object Microsoft.SqlServer.Dac.DacServices ("... Connection string ...")
$TargetDatabase = "databasename"
$fullDacPacPath = "c:\temp\...\databasename.dacpac"
# Load dacpac from file & deploy to database named pubsnew
$dp = [Microsoft.SqlServer.Dac.DacPackage]::Load($fullDacPacPath)
$DeployOptions = new-object Microsoft.SqlServer.Dac.DacDeployOptions
$DeployOptions.IncludeCompositeObjects = $true
$DeployOptions.IgnoreFileSize = $false
$DeployOptions.IgnoreFilegroupPlacement = $false
$DeployOptions.IgnoreFileAndLogFilePath = $false
$DeployOptions.AllowIncompatiblePlatform = $true
$d.Deploy($dp, $TargetDatabase,$true,$DeployOptions)
Run Code Online (Sandbox Code Playgroud)
以下是一些支持信息:
我正在尝试使用Julia并行实现代码.我正在使用@everywhere宏来使所有进程从RemoteRef获取数据.
是否可以使用仅在@everywhere表达式中的第一个进程上定义的变量名称,并以某种方式指定我希望它将该变量的值而不是变量名称发送到所有进程?
例:
r = RemoteRef()
put(r, data)
@everywhere data = fetch(r)
Run Code Online (Sandbox Code Playgroud)
这会返回错误,因为r未在所有进程上定义.
我应该如何将数据移动到所有进程?
另外,我可以告诉Julia在表达式中放置值而不是变量名吗?类似于如何name = "John"; println("Hello, $name")打印的东西"Hello, John"
我有SQL Server 2012,我想知道序列的用法是什么.我寻找一个样本来解释序列的用法.
编辑
我知道在数据库中创建和使用Sequence.我想知道使用Sequence的实际场景是什么.
SQL Server中分布式数据库事务和跨数据库事务之间的区别是什么.
我知道Distribute数据库事务是多个数据库之间的事务,可以通过以下查询使用:
BEGIN DISTRIBUTED TRANSACTION
...
COMMIT TRANSACTION
Run Code Online (Sandbox Code Playgroud) sql-server sql-server-2008 sql-server-2008-r2 sql-server-2012 sql-server-2014
我可以通过SQLcmd传递连接字符串吗?
我想在使用sqlcmd时通过连接字符串更改应用程序名称和故障转移伙伴(用于镜像).
现在.当我使用sqlcmd时,SQLcmd在sys.sysprocesses结果中设置我的连接的应用程序名称.
sql-server sql-server-2008 sql-server-2008-r2 sql-server-2012 sql-server-2014
我有多个java项目.这些项目使用gradle创建jar,war和ear文件.在每个项目中,我使用清单文件来维护元数据,如版本,日期时间......为此我在每个build.gradle文件中都包含了清单文件创建逻辑.
manifest {
attributes(
'Bundle-Vendor' : "$BUNDLE_VENDOR",
'Build-Time': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"))
}
Run Code Online (Sandbox Code Playgroud)
但在Gradle中有一个功能调用sharedManifest.我在主项目build.gradle脚本中定义了以下两个任务.但是在每个jar和war文件中都有Gradle创建的默认MANIFEST.MF文件.
ext.sharedManifest = manifest {
attributes(
'Bundle-Vendor' : "$BUNDLE_VENDOR",
'Build-Time': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
)
}
task fooJar(type: Jar) {
manifest = project.manifest {
from sharedManifest
}
}
task fooWar(type: War) {
manifest = project.manifest {
from sharedManifest
}
}
Run Code Online (Sandbox Code Playgroud)
jar.manifest.writeTo("/ MANIFEST.MF")war.manifest.writeTo("/ MANIFEST.MF")
请有人提出如何做的建议.