Sql server 如何删除PK列/键上的ROWGUID指定
我正在尝试剥离数据库当前的UID PK(同时保留列),作为转换过程的一部分,转换过程将使用所有int键 SSMS 2008(SQL Express 2008)-最初在SQL 2000中创建的数据库。Sql server 如何删除PK列/键上的ROWGUID指定,sql-server,tsql,Sql Server,Tsql,我正在尝试剥离数据库当前的UID PK(同时保留列),作为转换过程的一部分,转换过程将使用所有int键 SSMS 2008(SQL Express 2008)-最初在SQL 2000中创建的数据库。 如果有帮助,还将安装SQL 2008 full 许多表都有一个UID pk,它是ROWGUID=yes 似乎ROWGUID指定仅在键属性中找到。我可以在那里关闭它,但我想作为脚本的一部分。如果我在键或索引上执行脚本,我看不到任何指示该列是rowguid的内容 在PK被删除并且键和索引不再显示在SSM
如果有帮助,还将安装SQL 2008 full 许多表都有一个UID pk,它是ROWGUID=yes 似乎ROWGUID指定仅在键属性中找到。我可以在那里关闭它,但我想作为脚本的一部分。如果我在键或索引上执行脚本,我看不到任何指示该列是rowguid的内容 在PK被删除并且键和索引不再显示在SSMS中之后,SMO仍然将列视为rowguid 我是一个TSQL白痴,所以请随意说慢一点,用小词;-) 感谢您的指导。TIA您是否尝试过:
ALTER TABLE dbo.<table>
ALTER COLUMN <column>
DROP ROWGUIDCOL;
altertabledbo。
变列
滴加ROWGUIDCOL;
如果您想精通通过脚本更改表(这是一个好主意,因为它是源代码可控的,比使用UI更容易重复,也更不容易出错),我会将它添加到书签中。Blush。非常感谢,亚伦。我想我的大脑冻结了。谷歌搜索了我的头,在SSM中四处搜索,忘记了最基本的文档集。啊!作为跟进-是否有一种通用的方法来识别在整个数据库中循环的RowGuid所在的位置-如果我试图删除一个不是rowguidcol的rowguidcol,我会抛出一个错误(并停止循环)?当然,您的光标可以使用:SELECT table=OBJECT\u NAME(OBJECT\u id),column=NAME FROM sys.columns where is\u rowGuidColl=1。。。TRY/CATCH也不是一个坏主意,以防出现无法放弃财产的情况。再次感谢,Aaron。这看起来正是我需要的。