【发布时间】:2013-07-17 05:37:17
【问题描述】:
我已经尝试在所有外键/排序规则问题中搜索大约一个小时,但我什至找不到与我的问题很接近的东西。
我有两个来自两个不同软件供应商的表位于同一个数据库中。一个供应商将其排序规则硬编码为 Latin1_General_BIN,而另一个使用数据库默认值(在本例中为 Latin1_General_CI_AS)。是否可以在不更改任何列的情况下在这两种排序规则类型之间创建外键?
通常您只需更改一个,但在这种情况下,表格非常敏感,我不允许进行此类更改,但由于触发器中的一段逻辑读取数据之间的数据,我必须创建一个外键这两个表只有在找到外键时:
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
WHERE CONSTRAINT_NAME =
(
SELECT name FROM sys.foreign_keys
WHERE parent_object_id = OBJECT_ID( 'Table1' )
AND referenced_object_id = OBJECT_ID( 'Table2' )
)
任何帮助将不胜感激
附:如果有人能帮助我,我似乎无法弄清楚这段代码是如何工作的,我输入了 4 个必需的空格,但它仍然只是将我的代码显示为文本:(
【问题讨论】:
-
在四个空格之前尝试额外的换行符,并确保每个 rw 都有空格(或者单个制表符也可以)
-
你真是个聪明的裤子,谢谢大卫,额外的换行符起到了作用:) 你如何做一个标签?每次我按 Tab 时,它都会将焦点转移到下一个控件。
-
我通常在 notepad++ 中编辑我的代码,然后选择所有代码并按一次 Tab(然后我将其粘贴到 stackoverflow 中)。这样我就可以同时检查我的 SQL 或 C# 或 python 或其他什么的语法。您可以在 sql server management studio 和 Visual Studio 中执行相同的技巧。
标签: tsql foreign-keys collation