Sql server 如何轻松设置Stackoverflow示例创建表/插入值语句

Sql server 如何轻松设置Stackoverflow示例创建表/插入值语句,sql-server,sql-server-2005,tsql,function,Sql Server,Sql Server 2005,Tsql,Function,我正在寻找一种简单的方法,从我在Stackoverflow上发布的示例的SELECT语句中生成DROP表、CREATETABLE和INSERT VALUES语句 我通常可以得到一个SELECT语句来返回我想用作示例的一小部分数据。从那里我想要一个拖放表,创建表并插入要生成的值 下面是SELECT语句的一个示例 SELECT ad.ApplicantDetailID, ad.ApplicantMasterID, ad.DateEffective, ad.Correspond

我正在寻找一种简单的方法,从我在Stackoverflow上发布的示例的SELECT语句中生成DROP表、CREATETABLE和INSERT VALUES语句

我通常可以得到一个SELECT语句来返回我想用作示例的一小部分数据。从那里我想要一个拖放表,创建表并插入要生成的值

下面是SELECT语句的一个示例

SELECT ad.ApplicantDetailID,
    ad.ApplicantMasterID,
    ad.DateEffective,
    ad.CorrespondenceTypeID,
    ad.Value
FROM tblApplicantDetail AS ad
WHERE ad.CorrespondenceTypeID = 34
AND ad.ApplicantMasterID IN (41145,37046,45536,46764)
ORDER BY ad.ApplicantMasterID, ad.DateEffective
此SELECT状态返回6行

我想让函数做的是将SELECT语句作为输入,并生成以下TSQL代码(DROP TABLE、CREATE TABLE和INSERT VALUES)。第二个参数可用于发送临时表名称(即,在下面的示例#applicationdetail中)

从那里,我希望剪切并粘贴生成到Stackoverflow的代码

在设置一些测试数据样本时,此函数将为我(Stackoverflow社区的一名成员)节省大量时间

由于上面创建了#applicationDetail,因此您可以在示例中使用此SELECT语句。它将返回两条记录

SELECT * 
FROM #ApplicantDetail AS ad
WHERE ad.ApplicantMasterID = 45536
可能调用函数GenerateSampleTSQLData

下面是一个关于函数外观的想法。我不是创建函数的专家,所以请根据需要更改语法

GenerateSampleTSQLData('SELECT * 
  FROM #ApplicantDetail AS ad
  WHERE ad.ApplicantMasterID = 45536',
'#AppDet')
我正在运行SQL Server 2005,但将升级到2008。
如果你能让它在其中一个上面运行,那就太好了

现在我要发布另一个问题,它将实际使用此示例数据。

非常感谢。

步骤1.下载SSMS Tools Pack(免费)并安装它

步骤2运行查询

步骤3右键单击结果并选择脚本网格结果(参见下图)
步骤1.下载SSMS Tools Pack(免费)并安装

步骤2运行查询

步骤3右键单击结果并选择脚本网格结果(参见下图)

不错的附加组件。它很接近,但看起来它将所有内容都保存为NVARCHAR数据类型。(我想这是因为它是在gridview下工作的。)最好为每个字段保留数据类型(INT、DATETIME等)。我确实给了你一个好主意的投票。很好的附加。它很接近,但看起来它将所有内容都保存为NVARCHAR数据类型。(我想这是因为它是在gridview下工作的。)最好为每个字段保留数据类型(INT、DATETIME等)。我确实投了你一票赞成一个好主意。
GenerateSampleTSQLData('SELECT * 
  FROM #ApplicantDetail AS ad
  WHERE ad.ApplicantMasterID = 45536',
'#AppDet')