Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何删除PK列/键上的ROWGUID指定_Sql Server_Tsql - Fatal编程技术网

Sql server 如何删除PK列/键上的ROWGUID指定

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

我正在尝试剥离数据库当前的UID PK(同时保留列),作为转换过程的一部分,转换过程将使用所有int键

SSMS 2008(SQL Express 2008)-最初在SQL 2000中创建的数据库。
如果有帮助,还将安装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。这看起来正是我需要的。