用第三方工具:SQL Server 数据库脚本导出器 v1.0.0.1
http://www.678e.cn/SoftView/SoftView_8581.htmlSQL Server 数据库脚本导出器 v2.0
http://www.678e.cn/SoftView/SoftView_8582.html
http://www.678e.cn/SoftView/SoftView_8581.htmlSQL Server 数据库脚本导出器 v2.0
http://www.678e.cn/SoftView/SoftView_8582.html
解决方案 »
- 求个月份报表
- 两个表的查询
- 龟在不?谢谢你的速成大法!最近没时间上网,那个帖子已经结了,另外100分送上!
- 在还原数据库时,常规选项下有数据库、文件组和文件、从设备这三种还原方式,请问这三种方式有什么不同?用这三种方式还原同一个备份结果是不是一样?
- 高分求助:一个棘手的sql语句
- 求前1/3记录中某个字段的平均数,出错了
- sql2000锁的奇怪问题(sql7.0无问题?)
- 新手请教:如何实现在单位内网的某台机器上访问外网固定IP上的SQLSERVER中数据,谢谢
- 如何把MS的ACCESS数据库中的数据导到MS SQL SERVER 中
- SQL 返回多行相同记录
- 紧急求救!!如何动态改变函数中where后的子句?
- 一个查询问题??
from t1
drop function [dbo].[uf_GetFieldStr]
GO SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO--给非数字和非空字符串加引号
CREATE function dbo.uf_GetFieldStr(@Field varCHAR(8000)) -- SELECT '1' + dbo.uf_GetFieldStr('1900-1-1')
RETURNS varCHAR(8000)
AS
BEGIN
DECLARE @ResultStr varCHAR(8000)
IF @Field = 'NULL'
BEGIN
SET @ResultStr = @Field
END
ELSE
BEGIN
SET @ResultStr = '''' + @Field + ''''
END
RETURN(@ResultStr)
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GOif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[up_GetDatascript]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[up_GetDatascript]
GOSET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO--转换一个表的数据为脚本
CREATE PROC up_GetDatascript -- up_GetDatascript 'TableA'
@TableName NvarCHAR(50)
ASSET NOCOUNT ONDECLARE @FieldName NvarCHAR(50)
DECLARE @InsSql NvarCHAR(4000)DECLARE FieldCursor CURSOR FOR
SELECT [name]
FROM syscolumns sc
WHERE id = object_id(N'[dbo].[' + @TableName + ']') and OBJECTPROPERTY(id, N'IsUserTable') = 1
ORDER BY colidOPEN FieldCursorFETCH NEXT FROM FieldCursor INTO @FieldName
SET @InsSql = 'SELECT ''INSERT INTO ' + @TableName + ' VALUES(''
+ dbo.uf_GetFieldStr(ISNULL(CAST(' + @FieldName + ' AS varCHAR(8000)), ''NULL''))'FETCH NEXT FROM FieldCursor INTO @FieldName
WHILE @@FETCH_STATUS = 0
BEGIN
SET @InsSql = @InsSql + '
+ '', '' + dbo.uf_GetFieldStr(ISNULL(CAST(' + @FieldName + ' AS varCHAR(8000)), ''NULL''))'
FETCH NEXT FROM FieldCursor INTO @FieldName
ENDSET @InsSql = @InsSql + '
+ '')''
FROM ' + @TableNameSET @InsSql = 'SELECT [--Initscript for table ' + @TableName + '] = ''TRUNCATE TABLE ' + @TableName + '''
UNION ALL
'+@InsSqlEXEC(@InsSql)
--IF @@ERROR > 0
--BEGIN
-- PRINT @InsSql
--ENDCLOSE FieldCursor
DEALLOCATE FieldCursorSET NOCOUNT OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO