民间,Oracle到SQL Server的迁移问题 - 删除级联
我正在从Oracle到MS SQL Server的迁移。我遇到的一个问题是,“ON DELETE CASCADE”在Oracle中正常工作,但在SQL Server中不起作用。 是否有任何替代语法/命令,或者我们需要手动删除/修复它。
无法在Web上获得有效的链接/引用,因此请求在此处。 如果已经得到解答,请帮助重新转到相应的页面。
民间,Oracle到SQL Server的迁移问题 - 删除级联
我正在从Oracle到MS SQL Server的迁移。我遇到的一个问题是,“ON DELETE CASCADE”在Oracle中正常工作,但在SQL Server中不起作用。 是否有任何替代语法/命令,或者我们需要手动删除/修复它。
无法在Web上获得有效的链接/引用,因此请求在此处。 如果已经得到解答,请帮助重新转到相应的页面。
据我所知,在SQL Server中也支持ON DELETE CASCADE
。以下是语法:
CREATE TABLE child_table ( column1 datatype [ NULL | NOT NULL ], column2 datatype [ NULL | NOT NULL ], ... CONSTRAINT fk_name FOREIGN KEY (child_col1, child_col2, ... child_col_n) REFERENCES parent_table (parent_col1, parent_col2, ... parent_col_n) ON DELETE CASCADE );
ALTER TABLE child_table ADD CONSTRAINT fk_name FOREIGN KEY (child_col1, child_col2, ... child_col_n) REFERENCES parent_table (parent_col1, parent_col2, ... parent_col_n) ON DELETE CASCADE;
看到一个例子here。
我现在明白了..谢谢。但另一个问题出现了。我需要对同一个表使用循环引用,但列不同。这是可以在sql服务器或将相应的逻辑移动到应用程序代码的东西吗? –
@RoopeshMajeti请为此提出一个新问题,下次请发布一些示例数据和您尝试的内容。请标记为已回答,会帮助他人。 –
我不是SQL Server专家,但我敢肯定,在SQL Server中不存在“* does not work *”这样的错误信息。告诉我们你的代码和你得到的确切的错误信息。 –
我认为[this](http://stackoverflow.com/questions/6260688/how-do-i-use-cascade-delete-with-sql-server)答案会对你有所帮助。 – sohal