Sql server SQL Server相当于MySQL转储,用于为表中的所有数据生成insert语句
我有一个应用程序,它使用SQL Server数据库和数据库的多个实例…测试、生产等。。。我正在进行一些应用程序更改,其中一个更改涉及将一列从nvarchar(max)更改为nvarchar(200),以便我可以在其上添加唯一约束。SQL Server告诉我,这需要删除表并重新创建它 我想编写一个脚本来执行表删除,用新模式重新创建它,然后一次性重新插入以前存在的数据,如果可能的话,只是为了在我将此更改迁移到生产环境时保持简单易用Sql server SQL Server相当于MySQL转储,用于为表中的所有数据生成insert语句,sql-server,Sql Server,我有一个应用程序,它使用SQL Server数据库和数据库的多个实例…测试、生产等。。。我正在进行一些应用程序更改,其中一个更改涉及将一列从nvarchar(max)更改为nvarchar(200),以便我可以在其上添加唯一约束。SQL Server告诉我,这需要删除表并重新创建它 我想编写一个脚本来执行表删除,用新模式重新创建它,然后一次性重新插入以前存在的数据,如果可能的话,只是为了在我将此更改迁移到生产环境时保持简单易用 可能有一种很好的SQL Server方法可以做到这一点,但我只是不知
可能有一种很好的SQL Server方法可以做到这一点,但我只是不知道。如果我使用的是Mysql,我会使用Mysql转储表及其内容,并将其用作将更改应用于生产的脚本。我在SQL server中找不到任何导出功能,该功能将为我提供一个包含表中所有数据的插入的文本文件。使用SQL server的“生成脚本”命令
- 右键点击数据库;任务->生成脚本
- 选择表,单击“下一步”
- 单击高级按钮
- 查找要编写脚本的数据类型-选择架构和数据
- 然后,您可以选择保存到文件,或放入新的查询窗口
- 在项目符号2中选择的所有表格数据的
语句中产生结果INSERT
alter table….alter column…..
示例..您必须一次执行一列
create table Test(SomeColumn nvarchar(max))
go
alter table Test alter column SomeColumn nvarchar(200)
go
2转换列时转储到新表中
select <columns except for the columns you want to change>,
convert(nvarchar(200),YourColumn) as YourColumn
into SomeNewTable
from OldTable
现在添加索引谢谢。我不知道我怎么会错过。我想我希望能够右键单击该表,让它为我提供导出该表数据的选项。谢谢您的回答。这也有道理。
EXEC sp_rename 'SomeNewTable', 'OldTable';