2016-02-28 32 views
0

我有一个由Azure SQL数据库支持的现有Azure Web应用程序。我的计划是在我正在构建的新移动应用程序中使用这个相同的数据库,但是我做出了一项最初的设计决定,它不适用于Azure移动服务。我在现有的数据库整数ID中创建了密钥,并且最近要使用Mobile服务中的数据库,它需要ID为String GUID的ID。我有超过200个用户输入到我现有的数据库中,其他相关表都与这些ID绑定。更改Azure移动服务的密钥和数据

我的问题是,是否有一种功能或方法可以将所有这些整数键转换为字符串键而不会丢失所有数据并要求每个人手动进入并重新设置? 我的数据库知识是有限的,但从我见过的所有数据库知识来看,Azure移动服务要求密钥现在是字符串,并且没有解决的办法。

任何帮助非常感谢,谢谢!

回答

0

更改SQL列的数据类型,只是简单地运行下面的命令:

ALTER TABLE table_name 
ALTER COLUMN column_name column_type 

例如,假设你的表名是表1和列被称为键,

ALTER TABLE table1 
ALTER COLUMN keys varchar(10) 
+0

我试着运行这个命令,但是它不起作用,因为这些键被模式中的其他表引用。是否有一种方法可以级联应用此更改? – RunFranks525

+0

@ user3286257所以你的情况是,表A有一个主键A,它被表B作为外键引用。你想改变A的数据类型并反映在表B中,对吗?我不认为有一个简单的方法来做到这一点。您需要在表A和表B中添加一个新的varchar列,放弃原始外键和主键,然后重置两个新添加的键之间的相互关系,这显然并不简单。检查此线程的详细信息http://stackoverflow.com/questions/9023259/changing-datatype-of-a-column-which-is-referenced-by-other-tables – forester123