下面是我的代码,它将我的 sql 结果打印到文本文件中。我的问题是:如何为每次执行创建新的文本文件,而不是将结果附加到已经创建的相同文本文件?
我正在尝试添加 >> 但它只会将结果附加到相同的文本中。
需要帮助,这不是重复的问题,因为旧问题显示了如何在同一个文本文件中写入结果,但对于我的问题,我需要创建新的,并且不想覆盖旧的文本文件。
Declare @fn varchar(8000) = 'C:\Tmp\log\out.txt';
Declare @cmd varchar(8000);
DECLARE @viewObjectIds TABLE (object_id INT);
INSERT INTO @viewObjectIds
SELECT o.object_id
FROM sys.objects AS o
WHERE o.type = 'V';
DECLARE view_cursor CURSOR FAST_FORWARD FOR
SELECT object_id FROM @viewObjectIds;
OPEN view_cursor;
FETCH NEXT FROM view_cursor INTO @object_id;
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @command =
'EXECUTE sp_refreshview '''
+ QUOTENAME(OBJECT_SCHEMA_NAME(@object_id)) + '.' + QUOTENAME(OBJECT_NAME(@object_id))
+ ''';';
PRINT @command;
SELECT @cmd = 'echo '+ @command + ' >> '+ @fn + '' ;
exec xp_cmdshell @cmd
FETCH NEXT FROM view_cursor INTO @object_id;
END