Quantcast
Channel: SQL Server Integration Services forum
Viewing all 24688 articles
Browse latest View live

Event Handlers for Connections (OnError & onTaskFailed) possible? Notify when connection failed

$
0
0

Good day,

Probably a stupid question, are there Event Handlers for Connections (onError & onTaskFailed)

to send notification when connection down or failed

please I hope there's a way, I know theres scripts but im looking for eventhandlers

Any ideas?

Regards


How to move blobs(CSV files) from one container to another container same storage account using SSIS

$
0
0
move blobs(CSV files) from one container to another container same storage account using SSIS

Visual Studio Designer Oracle DLL Confusion

$
0
0

I am using BIDS in VS 2015 to create SSIS packages that pull data from an Oracle (11) database into our SQL (2016) server. I am using the ADO.NET connection (.Net Providers\OracleClient Data Provider)

Yesterday, I installed a new version of TOAD Data Point (uninstalled v3.3 and installed v4.3). After that installation, I am unable to use any of my Oracle connections in VS. The error I get is:

OCIEnvCreate failed with return code -1 but error message text was not available.

Looking on line, I see references to issues with your PATH variable, as it pertains to the path to OCI.DLL. Checking my PATH reveals that there is a path to TOAD's Oracle Plugin:

C:\Program Files (x86)\Quest Software\Toad Data Point 3.3\Plugins\Oracle

...and that is appearing above the path to the DLL that came with my Oracle installation:

C:\Oracle\product\11.2.0\client_1\BIN

Checking with a coworker who did not have Toad updated, he doesn't have any reference to the Toad plugin in his path. Note that the two OCI.DLLs are different versions (Toad's is v12, Oracle's is v11). Also, I just noticed that the Toad path is for the older Toad version, which is interesting...

I suspect that removing the TOAD reference from my path, or moving the Oracle reference above it could fix my VS issue. However, would it break Oracle in Toad?

Separately, is there any way to force VS to use the "right" version of OCI.DLL?

Am I on the right "path" at all here? In my company, admin rights to be able to experiment with it are hard to come by. As such, I'm hoping to get my ducks in a row before I submit a ticket, wait a week for someone from IT to try my first hunch, have it not work, and have to try again in another week.

Any thoughts?


ssis - move files from one directory to another and rename destination file if present

$
0
0
Hello,
How is it possible to move files from one directory to another directory and if the file already exists in destination directory then rename it?
Thanks

How can I rename a file, appendix to the end of the file the end of the month date using SSIS?

$
0
0

Hi,

I created a ssis package using the file system task, where I copy the file to a new directory and rename it. The problem is that I have to rename it with the end of the month date at the end.

How can I do that?

Thanks

Compare Destination table to Source flat file and update records accordingly

$
0
0

Hi,

I am quite under a time limit to get this project complete so I am reaching out for help.  To start, I JUST started working with SSIS a few days ago, I am VERY new to it as well as SQL as a whole.

I have data coming out of a Qlikview application and being stored into a CSV.  This data does not have any proper primary keys or anything like that.  In Qlikview, I have it creating a hash number based on USERID, Role, SubRolename (called this field PrimaryK).  This is good since it creates a unique string for each unique combination of those values.

I have a SQL table built to store the information from the CSV once the SSIS package is built.

I need to create a Type2 Slowly Changing dimension that tracks (and updates a field in the SQL table called Modified Date) changes to existing records, inserts new records, and detects if a record has been removed. 

In a nutshell, I need SSIS to compare the flat file source to the destination SQL table.  If the PrimaryK exists in the destination, do nothing, these are existing records.  If the PrimaryK does not exist in the destination, insert it (these are new records).  If there is a PrimaryK in the destination that does not exist in the source flat file, update this record in the destination table with todays date in Modified Date field.

I hope this makes sense.  Appreciate any help, I am very new to this so...lamens terms :)

Filename_Timestamp

$
0
0

hi 

i have bunch of source files coming in as filename_20190122_210500317_107980538. I want to capture the file name and timestamp in to 2 different columns like FileName , FileUpdated columns. How can i seperate filename and timestamp from the inbound filename (filename_20190122_210500317_107980538)

What does the timestamp bolded refers to filename_20190122_210500317_107980538.

Thanks

ForEach Loop Container Not Getting All Files

$
0
0

Hello, August Members of the Sages Guild!

I have an SSIS package that processes incoming Excel reports into a historical SQL table for data mining. It's been working fine and dandy, but, recently, two runs missed some Excel reports.

It's not something I can replicate, as it's sporadic - highly so; the vast majority of the time, it works seamlessly - but, I've got a hunch that it's a matter of timing; that one Control Flow or Data Flow task is being flagged as complete when the actual process within that task is truly not finished.

What the package does;

Within a ForEach Loop Container;
1. Clear out Staging table 1 with a SQL Task doing a TRUNCATE,
2. Clear out Staging table 2 with a SQL Task doing a TRUNCATE,
3. Run a C# script to scan the existing Excel reports to find the oldest report and make it the active report,
4. Import Sheet 1 of the active report into Staging1,
5. Import Sheet 2 of the active report into Staging2,
6. Use a UNION ALL task to send both Staging1 and Staging2 to the History table,
7. Delete the active Excel report file.

Of course, the ForEach Loop Container will check for another report, processing it the same way, finally to stop when all files have been processed.

Now, this has worked like a charm for almost a year, but twice now - last week and today - the container signalled that it successfully completed - it turned green - before having run through all of the Excel files. The only real change is that last week the Excel files jumped in size to about double or triple what they had been when it worked flawlessly.

So, I'm thinking, maybe there is a task getting ahead of itself or something. I thought, maybe a task to run a 1 or 2 second timer to give SSIS a chance to ensure it can "catch its breath" before continuing on to the next task might alleviate this issue. Maybe, I thought, my Excel files are getting too big for SSIS to handle so much at one time. Maybe even, if there is such a setting, something to tell SSIS to slow down a mite.

I guess I could gin up a script to just run a loop to account for a couple of seconds delay, since there doesn't seem to be a timer task in the tooolbox, but I wonder if my hunch is even correct, before I embark on this adventure.

Any ideas?


Need help with error running a Data Flow Task in a Foreach Loop Container

$
0
0
I'm a new SSIS developer using Visual Studio 2017 Pro.  I have a SQL Server 2016 table that contains AutoDialer records that are to be sent to a web service.  The problem is that the process is not even getting to where it sends the record to the web service.  The Foreach Loop container is setup to use the Foreach Item Enumerator (to loop through the database table and process each record).  My enumerator configuration is setup with these 3 items as variables:
 - Column 0: Server  (User::Server)
 - Column 1: Database   (User::Database)
 - Column 2: TableName   (User::TableName)

Inside a Sequence Container I have Data Flow Task inside a Foreach Loop Container that processes each record of the table, and then sends that record to the web service.  From the Web Service Destination tool (KingswaySoft), I have the error output going to an error log table, and the processed records going to a sent records table.  No records are written to any table due to the errors received from the process.

At the beginning of the Data Flow Task I have a OLE DB Source component that uses the User::TableName variable as the source input.  From there it goes to the Web Service Destination component to create a CreateCustomerServiceRecord operation and then sends the record to the web service - or at least that's how it's supposed to work.
From the below error messages, it appears the system is having issues with the TableName variable:

Information: 0x40043006 at File Pick up and Load to Table, SSIS.Pipeline: Prepare for Execute phase is beginning.
Information: 0x40043007 at File Pick up and Load to Table, SSIS.Pipeline: Pre-Execute phase is beginning.
Information: 0x4004300C at File Pick up and Load to Table, SSIS.Pipeline: Execute phase is beginning.
Information: 0x402090DF at File Pick up and Load to Table, Send to TEMP Auto_Dialer_CampaignResults [78]: The final commit for the data insertion in "Send to TEMP Auto_Dialer_CampaignResults" has started.
Information: 0x402090E0 at File Pick up and Load to Table, Send to TEMP Auto_Dialer_CampaignResults [78]: The final commit for the data insertion  in "Send to TEMP Auto_Dialer_CampaignResults" has ended.
Information: 0x40043008 at File Pick up and Load to Table, SSIS.Pipeline: Post Execute phase is beginning.
Information: 0x4004300B at File Pick up and Load to Table, SSIS.Pipeline: "Send to TEMP Auto_Dialer_CampaignResults" wrote 307 rows.
Information: 0x40043009 at File Pick up and Load to Table, SSIS.Pipeline: Cleanup phase is beginning.
Information: 0x4004300A at Data Flow Task - Process record for Epic, SSIS.Pipeline: Validation phase is beginning.
Error: 0xC0202009 at Data Flow Task - Process record for Epic, OLE DB Source - TEMP STG_Updated_CRM_AutoDialer_Results [193]: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80040E37.
Error: 0xC02020E8 at Data Flow Task - Process record for Epic, OLE DB Source - TEMP STG_Updated_CRM_AutoDialer_Results [193]: Opening a rowset for "TableName" failed. Check that the object exists in the database.
Error: 0xC004706B at Data Flow Task - Process record for Epic, SSIS.Pipeline: "OLE DB Source - TEMP STG_Updated_CRM_AutoDialer_Results" failed validation and returned validation status "VS_ISBROKEN".
Error: 0xC004700C at Data Flow Task - Process record for Epic, SSIS.Pipeline: One or more component failed validation.

The TableName variable is set to a table that does indeed exist: [TEMP].[STG_Updated_CRM_AutoDialer_Results]
I'm not able to infer from the error descriptions and codes what the exact issue is.

Any help would be greatly appreciated!

Merge PDF files into one file

$
0
0
Is there a way in SSIS where we can merge multiple PDF files into one PDF file? Not sure if this is achievable using SSIS. Let me know if not using SSIS what are the other ways to achieve this? Any help much appreciated.

Packing is hanging while redirecting error rows to flatfile

$
0
0

1. loading data from query to sql table and redirecting rows to flat file
2. structure is oledbsource-->oledbdestination1 with fastload-->oledb destination2 with maxinsertcommitsize to 1(to avoid all batch rows go to error flatfile destination)-->flatfiledestination to load error rows

Now the issue is I getting 230 error rows and package is handing at 2nd oledb destination and taking a bit time to complete. performance is not good.

how to resolve this issue


How to set font for SSIS Project

$
0
0

I'm open SSIS Project in Windows Server 2016 and it very big.

Can somebody help me know how to set font size

Error Loading Task. The Contact Informaiton For the Task is "". This Happens When Loading a Task Fails.

$
0
0

Can someone help with the diagnosis of these errors?

 

I'm receiving the following error when opening a SSIS package:

 

Error loading a task.  The contact information for the task is "".  This happens when loading a task fails.

 

The task in question is a custom control flow task.  The DLL is in the ...\Tasks and ...\V2.0...\ folders.  It was also registered to the GAC and is strongly typed.

 

Attempting to delete the task results in the error:

 

Cannot remove the specified item because it was not foun in the specified collection.

 

Next, I click OK and close the package where I'm prompted to save the file.  I choose yes and the package closes as expected.  Surprisingly, the custom task is gone when I reopen the package. 

 

Finally, I add the custom task to the control flow.  No validation or other errors are presented at this point.   So, I run the package and encounter this error:

 

Error: 0x0 at Generate Snapthot, Generate Snapshot: Parameter validation failed. It is not possible to provide valid values for all parameters. ---> Parameter validation failed. It is not possible to provide valid values for all parameters. ---> Parameter validation failed. It is not possible to provide valid values for all parameters.

 

I'm not sure what's going on here.  I had previously changed the assembly version from 1.0.0.4 to 0.0.0.0.  Since that change, I resigned the application by generating a new *.SNK file, copying the DLL files to the appropriate folders, and added the new task to the toolbox and the package.

Connecting to Azure DB via Active Directory - Integrated

$
0
0

Is it possible to connect to an Azure DB via an Active Directory - Integrated account? Currently I only have the option to select Use Windows Authentication or Use SQL Server Authentication.

I can connect via SSMS 17 to Azure DB via Active Directory - Integrated.

I'm running SSDT 2013

ODBC Progress datatype problems after updating to VS 2017 15.9

$
0
0

Hey there,

we are currently using VS 2017 15.7.5 and SSDT 15.8

We've got SSIS packages which read data from a Progress database via ODBC.

We updated to VS 2017 15.9.2 and now all the ODBC Progress packages fail, nothing else has been changed.

The problem we have is that all the columns which were previously correctly identified as DT_DBDATE are now recognized as DT_BYTES.

It seems to be some weird regional or language problem.

Comparing the ODBC Source previews:

On the machine where we still have 15.7.5 date values show as for example "2018-11-05".

On the new machine with 15.9.2 date values show as "3/11/2014 12:00:00 AM".

Changing any of the machine's regional settings didn't help, so it must be a problem within Visual Studio?


script task variable not showing value on the server

$
0
0

Hi,

I have a script to check if the latest file exists on the directory, if it exists, pass the file name. I created two variables one is Filefolder with directory and other one is varfilename with blank bec it changes everytime. Script task passing the latest file name to varfilename variable properly when I run on my local machine but when I deployed it, it is not passing the value. Any thoughts?

greatly appreciate your help

Thanks,

Setting dependency between two sql server agent jobs

$
0
0

Hi,

I have Job 1 runs daily and Job 2 runs weekly once. But Job 2 should run after Job 1 runs successfully. would you please let me know how can it be done?

Thank you in advance,

SSISDB (2017 CU8) running in Always on Group - Maintenance procedure bug (cleanup_server_retention_window)?

$
0
0

Hi,

Since upgrading to SQL 2017 (from 2017), the SSIS maintenance job keeps failing.  The job step is the following..

  DECLARE @role int
SET @role =(SELECT [role] FROM [sys].[dm_hadr_availability_replica_states] hars
             INNER JOIN [sys].[availability_databases_cluster] adc
                    ON hars.[group_id] = adc.[group_id]
                    WHERE hars.[is_local] = 1 AND adc.[database_name] ='SSISDB')
IF DB_ID('SSISDB') IS NOT NULL AND(@role IS NULL OR @role = 1)
       EXEC [SSISDB].[internal].[cleanup_server_retention_window]

However it fails with the error message"A cursor with the name 'execution_cursor' does not exist."

After looking through the proc, it de-allocated the cursor then tries to access it again within the while loop.  So we are deleting 1000 records from the SSIS history at a time, but then hit the error.  Whilst I could modify the procedure, I thought i'd see if anyone else encounted this.

SET QUOTED_IDENTIFIER ON
SET ANSI_NULLS ON
GO


CREATE PROCEDURE [internal].[cleanup_server_retention_window]
WITH EXECUTE AS 'AllSchemaOwner'
AS
    SET NOCOUNT ON
    
    DECLARE @enable_clean_operation bit
    DECLARE @retention_window_length int
    DECLARE @server_operation_encryption_level int
    
    DECLARE @caller_name nvarchar(256)
    DECLARE @caller_sid  varbinary(85)
    DECLARE @operation_id bigint
    
    EXECUTE AS CALLER
        SET @caller_name =  SUSER_NAME()
        SET @caller_sid =   SUSER_SID()
    REVERT
         
    
    BEGIN TRY
        SELECT @enable_clean_operation = CONVERT(bit, property_value) 
            FROM [catalog].[catalog_properties]
            WHERE property_name = 'OPERATION_CLEANUP_ENABLED'
        
        IF @enable_clean_operation = 1
        BEGIN
            SELECT @retention_window_length = CONVERT(int,property_value)  
                FROM [catalog].[catalog_properties]
                WHERE property_name = 'RETENTION_WINDOW'
                

            IF @retention_window_length <= 0 
            BEGIN
                RAISERROR(27163    ,16,1,'RETENTION_WINDOW')
            END
            SELECT @server_operation_encryption_level = CONVERT(int,property_value)  
                FROM [catalog].[catalog_properties]
                WHERE property_name = 'SERVER_OPERATION_ENCRYPTION_LEVEL'

            IF @server_operation_encryption_level NOT in (1, 2)       
            BEGIN
                RAISERROR(27163    ,16,1,'SERVER_OPERATION_ENCRYPTION_LEVEL')
            END
            INSERT INTO [internal].[operations] (
                [operation_type],  
                [created_time], 
                [object_type],
                [object_id],
                [object_name],
                [status], 
                [start_time],
                [caller_sid], 
                [caller_name]
                )
            VALUES (
                2,
                SYSDATETIMEOFFSET(),
                NULL,                     
                NULL,                     
                NULL,                     
                1,      
                SYSDATETIMEOFFSET(),
                @caller_sid,            
                @caller_name            
                ) 
            SET @operation_id = SCOPE_IDENTITY() 
            
            DECLARE @temp_date datetimeoffset
            DECLARE @rows_affected bigint
            DECLARE @delete_batch_size int

            
            SET @delete_batch_size = 1000  
            SET @rows_affected = @delete_batch_size
            
            SET @temp_date = DATEADD(day, -@retention_window_length, SYSDATETIMEOFFSET())
            
            CREATE TABLE #deleted_ops (operation_id bigint, operation_type smallint)
            DECLARE execution_cursor CURSOR GLOBAL FOR SELECT operation_id FROM #deleted_ops  WHERE operation_type = 200

			DECLARE @sqlString_operation_messages_scaleout   nvarchar(1024)
            DECLARE @sqlString_event_messages_scaleout       nvarchar(1024)
            DECLARE @sqlString_event_message_context_scaleout        nvarchar(1024)

            IF @server_operation_encryption_level = 1
            BEGIN
                DECLARE @execution_id bigint
                DECLARE @sqlString              nvarchar(1024)
                DECLARE @sqlString_cert         nvarchar(1024)
                DECLARE @key_name               [internal].[adt_name]
                DECLARE @certificate_name       [internal].[adt_name]

            WHILE (@rows_affected = @delete_batch_size)
            BEGIN
                DELETE TOP (@delete_batch_size)
                    FROM [internal].[operations] 
                        OUTPUT DELETED.operation_id, DELETED.operation_type INTO #deleted_ops
                    WHERE ( [end_time] <= @temp_date
                    OR ([end_time] IS NULL AND [status] = 1 AND [created_time] <= @temp_date ))
                SET @rows_affected = @@ROWCOUNT
            OPEN execution_cursor
            FETCH NEXT FROM execution_cursor INTO @execution_id
            WHILE @@FETCH_STATUS = 0
            BEGIN
                SET @key_name = 'MS_Enckey_Exec_'+CONVERT(varchar,@execution_id)
                SET @certificate_name = 'MS_Cert_Exec_'+CONVERT(varchar,@execution_id)
                SET @sqlString_operation_messages_scaleout = 'delete from [internal].[operation_messages_scaleout] where operation_id = '+CONVERT(varchar,@execution_id)
                SET @sqlString_event_messages_scaleout = 'delete from [internal].[event_messages_scaleout] where operation_id = '+CONVERT(varchar,@execution_id)
                SET @sqlString_event_message_context_scaleout  = 'delete from [internal].[event_message_context_scaleout] where operation_id = '+CONVERT(varchar,@execution_id)
                        SET @sqlString = 'DROP SYMMETRIC KEY '+ @key_name
                        SET @sqlString_cert = 'DROP CERTIFICATE '+ @certificate_name
                        BEGIN TRY
                    EXECUTE sp_executesql @sqlString
                            EXECUTE sp_executesql @sqlString_cert
                            EXECUTE sp_executesql @sqlString_operation_messages_scaleout
                            EXECUTE sp_executesql @sqlString_event_messages_scaleout
                            EXECUTE sp_executesql @sqlString_event_message_context_scaleout
                        END TRY

                        BEGIN CATCH
                            
                        END CATCH

                FETCH NEXT FROM execution_cursor INTO @execution_id
            END
            CLOSE execution_cursor
                    TRUNCATE TABLE #deleted_ops
                END
                DROP TABLE #deleted_ops

            DEALLOCATE execution_cursor
            END
            ELSE BEGIN
                WHILE (@rows_affected = @delete_batch_size)
                BEGIN
                    DELETE TOP (@delete_batch_size)
                        FROM [internal].[operations] 
                         OUTPUT DELETED.operation_id, DELETED.operation_type INTO #deleted_ops
                        WHERE ( [end_time] <= @temp_date
                        OR ([end_time] IS NULL AND [status] = 1 AND [created_time] <= @temp_date ))
                    SET @rows_affected = @@ROWCOUNT

                      OPEN execution_cursor
            FETCH NEXT FROM execution_cursor INTO @execution_id
             WHILE @@FETCH_STATUS = 0
            BEGIN
                SET @sqlString_operation_messages_scaleout = 'delete from [internal].[operation_messages_scaleout] where operation_id = '+CONVERT(varchar,@execution_id)
                SET @sqlString_event_messages_scaleout = 'delete from [internal].[event_messages_scaleout] where operation_id = '+CONVERT(varchar,@execution_id)
                SET @sqlString_event_message_context_scaleout  = 'delete from [internal].[event_message_context_scaleout] where operation_id = '+CONVERT(varchar,@execution_id)
                BEGIN TRY
                    EXECUTE sp_executesql @sqlString_operation_messages_scaleout
                    EXECUTE sp_executesql @sqlString_event_messages_scaleout
                    EXECUTE sp_executesql @sqlString_event_message_context_scaleout
                END TRY
                BEGIN CATCH 
                END CATCH
                FETCH NEXT FROM execution_cursor INTO @execution_id
            END
            CLOSE execution_cursor
                    TRUNCATE TABLE #deleted_ops
            DEALLOCATE execution_cursor
               END
                DROP TABLE #deleted_ops
            END
            UPDATE [internal].[operations]
                SET [status] = 7,
                [end_time] = SYSDATETIMEOFFSET()
                WHERE [operation_id] = @operation_id                                  
        END
    END TRY
    BEGIN CATCH
        IF @server_operation_encryption_level = 1
        BEGIN
        IF (CURSOR_STATUS('local', 'execution_cursor') = 1 
            OR CURSOR_STATUS('local', 'execution_cursor') = 0)
        BEGIN
            CLOSE execution_cursor
            DEALLOCATE execution_cursor            
        END
        END
        UPDATE [internal].[operations]
            SET [status] = 4,
            [end_time] = SYSDATETIMEOFFSET()
            WHERE [operation_id] = @operation_id;       
        THROW
    END CATCH
    RETURN 0

GO

Cannot obtain the schema rowset "DBSCHEMA_TABLES" for OLE DB provider "OraOLEDB.Oracle" for linked server "LINKSERVER-NAME". The provider supports the interface, but returns a failure code when it is used.

$
0
0

My Link Server works fine in SQL Server 2008 R2, but not in SQL Server 2014. I get the message below in SSMS.

I am connecting to an Oracle DB from SQL Server 2014 database.

  1. SELECT * FROM OPENQUERY(PRIMAVERA_LINK, 'SELECT count(*) from SCHEMA.TABLENAME' ) - works fine.
  2. I can successfully run a query from SQLPLUS.
  3. When I test the Linked Server connection is works fine.
  4. When I expand the tables I get the error below.

Any help would be appreciated. I have been researching this issue for days.

TITLE: Microsoft SQL Server Management Studio
------------------------------
Failed to retrieve data for this request. (Microsoft.SqlServer.Management.Sdk.Sfc)
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&LinkId=20476
------------------------------
ADDITIONAL INFORMATION:
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
------------------------------
Cannot obtain the schema rowset "DBSCHEMA_TABLES" for OLE DB provider "OraOLEDB.Oracle" for linked server "PRIMAVERA_LINK". The provider supports the interface, but returns a failure code when it is used. (Microsoft SQL Server, Error: 7311)
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=12.00.6024&EvtSrc=MSSQLServer&EvtID=7311&LinkId=20476
------------------------------
Suzanne O'Connor

Who will be announced as the next SQL Server Integration Services Guru? Read more about March 2019 competition!

$
0
0


What is TechNet Guru Competition?

Each month the TechNet Wiki council organizes a contest of the best articles posted that month. This is your chance to be announced as MICROSOFT TECHNOLOGY GURU OF THE MONTH!

One winner in each category will be selected each month for glory and adoration by the MSDN/TechNet Ninjas and community as a whole. Winners will be announced in dedicated blog post that will be published in Microsoft Wiki Ninjas blog, a tweet from the Wiki Ninjas Twitter account, links will be published at Microsoft TNWiki group on Facebook, and other acknowledgement from the community will follow.

Some of our biggest community voices and many MVPs have passed through these halls on their way to fame and fortune.

If you have already made a contribution in the forums or gallery or you published a nice blog, then you can simply convert it into a shared wiki article, reference the original post, and register the article for the TechNet Guru Competition. The articles must be written in March 2019 and must be in English. However, the original blog or forum content can be from beforeMarch 2019.

Come and see who is making waves in all your favorite technologies. Maybe it will be you!


Who can join the Competition?

Anyone who has basic knowledge and the desire to share the knowledge is welcome. Articles can appeal to beginners or discusse advanced topics. All you have to do is to add your article to TechNet Wiki from your own specialty category.


How can you win?

  1. Please copy/Write over your Microsoft technical solutions and revelations to TechNetWiki.
  2. Add a link to your new article on THIS WIKI COMPETITION PAGE (so we know you've contributed)
  3. (Optional but recommended) Add a link to your article at the TechNetWiki group on Facebook. The group is very active and people love to help, you can get feedback and even direct improvements in the article before the contest starts.

Do you have any question or want more information?

Feel free to ask any questions below, or Join us at the official MicrosoftTechNet Wiki groups on facebook. Read More about TechNet Guru Awards.

If you win, people will sing your praises online and your name will be raised as Guru of the Month.


PS: Above top banner came from Rajeesh Menoth.

Dave Rendon - wikiazure

Viewing all 24688 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>