Sql server d正在使用中。对不起,我有点麻烦了。 INSERT INTO mtTable (Win_Ver) SELECT @@Version DECLARE @ServerName sysname, @Command NVARCHAR(40
d正在使用中。对不起,我有点麻烦了。Sql server d正在使用中。对不起,我有点麻烦了。 INSERT INTO mtTable (Win_Ver) SELECT @@Version DECLARE @ServerName sysname, @Command NVARCHAR(40,sql-server,command-line,Sql Server,Command Line,d正在使用中。对不起,我有点麻烦了。 INSERT INTO mtTable (Win_Ver) SELECT @@Version DECLARE @ServerName sysname, @Command NVARCHAR(4000), @CommandTemplate NVARCHAR(4000); DECLARE @Results TABLE ([ResultID] INT IDENTITY(1, 1) NOT NULL, [Result] NV
INSERT INTO mtTable
(Win_Ver)
SELECT @@Version
DECLARE @ServerName sysname,
@Command NVARCHAR(4000),
@CommandTemplate NVARCHAR(4000);
DECLARE @Results TABLE ([ResultID] INT IDENTITY(1, 1) NOT NULL, [Result] NVARCHAR(4000));
SET @CommandTemplate = N'SQLCMD -S {{SERVER_NAME}} -E -h-1 -Q "PRINT @@VERSION;"';
DECLARE srvrs CURSOR LOCAL READ_ONLY FAST_FORWARD
FOR SELECT [ServerName]
FROM ServerStats;
OPEN srvrs;
FETCH NEXT
FROM srvrs
INTO @ServerName;
WHILE (@@FETCH_STATUS = 0)
BEGIN
SET @Command = REPLACE(@CommandTemplate, N'{{SERVER_NAME}}', @ServerName);
INSERT INTO @Results ([Result])
EXEC xp_cmdshell @Command;
-- Get results via SELECT [Result] FROM @Results ORDER BY [ResultID];
-- Do something with the data in @Results
DELETE FROM @Results;
FETCH NEXT
FROM srvrs
INTO @ServerName;
END;
CLOSE srvrs;
DEALLOCATE srvrs;