Tag: AI

  • Generating Random Strings with GenAI

    One of the things I’ve been experimenting with in AI is taking things other people do and seeing how well the AI works. In this case, I took a Prompt from Louis and tried to see how well it worked. This post describes the results from a few models.

    This is part of a series of experiments with AI systems.

    The Challenge Using Claude

    Louis was using an AI to generate some test data to play with the new Regex functionality in SQL Server 2025. He put this in ChatGPT: “create a set of random string data with 1000 rows for a sql server table named RegExTest. It should insert data into a column named Value”.

    He had mixed results with ChatGPT, which I tend not to use. Instead, I tried this in Claude. I like Claude as I get an explanation separate from the code. Here’s a view of the page:

    2025-06_line0031

    Here’s the code, which is nice because I could steal certain patterns out of here if I had the need. The explanation was also good, and I’ve reproduced that here:

    <start claude explanation>

    This SQL script creates 1000 rows of diverse random string data for your RegExTest table. The data includes various patterns that are useful for testing regular expressions:

    • Email addresses (user@domain.com)
    • Phone numbers ((123) 456-7890)
    • Dates (MM/DD/YYYY)
    • Mixed alphanumeric with special characters (ABC-123_XYZ)
    • Numeric strings (123456)
    • URL patterns (https://www.example.com/path)
    • Code patterns (AB12C345)
    • Words with spaces (Hello World)
    • Mixed case strings (AbCdEf123)
    • Random alphanumeric strings

    The script uses a recursive CTE to generate 1000 rows and applies different string generation patterns based on the row number modulo operations. This ensures you get a good variety of data types to test your regular expressions against.

    The script also includes table creation (if it doesn’t exist) and verification queries to confirm the data was inserted successfully.

    <end claude explanation>

    There was an issue in the else part of the CASE. The last CONCAT call only had the first parameter and CONCAT needs two parameters, so I copy/pasted the 2nd parameter from the last THEN statement, which worked fine. In this case, that parameter was an acceptable choice to create a random alpha string.

    Perplexity

    I got a very weak result from Perplexity. Essentially, write insert statements, though you could use a script.

    2025-06_line0037

    I didn’t see a script, so I asked. I got this.

    2025-06_line0039

    Here’s the SQL Code:

    2025-06_line0040

    That’s weak. It works, but it’s weak and I think I could have written that in not much more time than the AI took.

    It did end with this sentence: Let me know if you want the script in another format or with different string lengths!

    I did and then got a series of different scripts for different formats, but each was producing a separate 1000 rows of only that format.

    DeepSeek

    I download the DeepSeek coder model and decided to try that. The basic prompt was disappointing. The model basically wanted to use Python and only imported modules without other code.

    2025-06_line0041

    When I said that and asked for code, I got more details, but with the script separated out into sections. The top seemed to repeat a bit.

    2025-06_line0042

    Then I got each part of the script.

    2025-06_line0043

    I didn’t run this, but it’s a reasonable way to do things for developers. For data people, this seems like overhead.

    I asked for SQL, and got a script for Oracle, but more interesting, the code is for 1000 rows, but the comments say ten thousand. Can’t the GenAI count?

    2025-06_line0044

    I asked to change this to SQL Server and got this code.

    2025-06_line0045

    I don’t know what to say except that I’m disappointed in the local deepseek model, which is not only slow, but hasn’t produced a good answer.

    Summary

    Claude clearly wins this experiment.

  • Getting References for GenAI Results

    I wrote an editorial on the view of GenAI tech from execs and someone commented that they wanted references for results. Most of us might take a result from a co-worker and use it without asking for any proof of where it comes from. If we trust our co-workers, this can work well. If we don’t, then we might want to know where they learned this and how they know it works.

    For GenAI, we might want some references to help us learn more or check something. Or, more likely, learn how to modify something that isn’t perfect.

    In this sense, GenAI can be better as this gives us the references we need to learn how the answer was generated.

    This post looks at how I got references in a few cases using Claude, Perplexity, and Copilot.

    This is part of a series of experiments with AI systems.

    Asking a Question

    I decided to ask a question that I was asked by someone and I used Copilot to find the answer. Here is my prompt:

    I need to schedule a Powershell script to access a SQL Server and want to use a managed service account to run the script. How can I do this in powershell

    Let’s look at how the various tools I’ve used respond.

    Claude

    Claude.ai is from Anthropic and it’s a tool I’ve enjoyed using. When I pasted in the prompt, I saw this response:

    2025-05_0222

    I got to the bottom and no references, but when I asked for them (see my prompt in the image), I got a few to look at.

    2025-05_0223

    That’s one of the tricks with AI. You can ask it to explain itself.

    Perplexity

    My second test was perplexity, which I started to use a bit after Grant mentioned it.

    2025-05_0220

    Right at the top, I get some references that I can click. When I get to the bottom, I have a list of possible future prompts, which aren’t references, but they get me thinking about things I might need to consider.

    2025-05_0221

    That worked well and I liked having the references, though I’d prefer them at the end.

    Copilot

    I decided to try Copilot inside of VS Code, which is where I’d likely use it. I entered the prompt as a comment in a blank .ps1 file. After my first line, it suggested a few more comments to give context. I accepted a few and then added the last #include references line.

    2025-05_0224

    I didn’t get references and the generation stopped at the #End of script line.

    I then added the comment below asking for URL references.

    2025-05_0225

    Each of the items above appeared as a line in italics, like other suggestions. I hit Tab to accept and I’d get another reference. When I saw the last one repeat, I stopped the responses.

    Summary

    I’m not evaluating the code here, just trying to see if I could get some idea of where the code came from. In this case, I don’t deal with MSAs a lot, so it’s good that I can get some URLs to check docs or get more options other than the code I found.

    If I asked this question on Stack Overflow, I might get the same code (or similar), but getting URLs or references isn’t always easy there. Some people provide them, some don’t, and some might just close my question and say I should have searched better.

    I think the GenAI does a good job here of giving me a starting point, and a place to go, which is helpful.

  • Copilot Outside of SSMS Seems to Work

    I read Brent’s first look at SSMS and Copilot in there. He didn’t have a great opinion of the tool, especially comparing it to Gemini or Claude. I haven’t tested this yet, mostly because I’ve got other stuff going on, but I decided to take his prompt and the code and drop it into the dedicated Copilot App on my Windows 11 laptop.

    This is part of a series of experiments with AI systems.

    I have a button that starts Copilot, so I pressed it and put in this prompt:

    2025-05_line0075

    This was copied from Brent’s post, and then his code copied and dropped in.

    I was curious to see if this worked.

    My Results

    I thought my results were better. The first part of the response is shown below. Copilot sees the scalar function as a problem and rewrites things. I don’t love that this is just the query and not the CREATE OR ALTER PROC part, but still.

    2025-05_line0073

    Below this, it notes that I should test indexes and gives me the ones it would recommend. Then it goes into the fact that order by desc can be problematic. It also has a TOP 1 recommendation for the first query.

    2025-05_line0074

    The rest of the response is OK, and gets into some general things that might help me go past the recommendations.

    2025-05_line0076

    The prompting matters, as if I click on the “what are more perf opt techniques” I get a lot of generic stuff.

    2025-05_line0078

    Is AI going to make you a better DBA or developer? Maybe. It will give you things to think about, but you need to test them. You might even ask a GenAI tool for help on that. I did and got this:

    2025-05_line0079

    And below, some more steps.

    2025-05_line0080

    Not bad, and likely what a lot of people do, though perhaps not with #5, in which HammerDB is suggested to run this proc.

    Learn to use GenAI tools, learn where they help (And save time) and where they can’t be trusted. That’s likely an ongoing battle for most of us, but these tools can help us be more productive.

  • Changing the Paradigm of Work

    I saw an article on AI usage that is based on an upcoming book that suggests redesigning the world around new tech, not adding it to existing things. The first example is how electricity was introduced to existing factories, but it only provided some incremental gains until new factories were redesigned around electric motors. There’s also an example given about reworking hotels to remove the front desk since that feature isn’t needed. Instead, people could walk in, and an employee with a tablet could find them to check them in.

    I’m all for rethinking and redesigning processes. I do think we have a huge glut of software in many organizations that exists because processes have evolved across time, but not everything and we keep our old software. When we have a new need or want a new capability, we add new software (or add features), but we don’t necessarily throw out all the old software, processes, or habits. That wouldn’t be practical, often because when we implement something new, it might not meet all our needs. Or at least we don’t know it meets our needs at first.

    I don’t love the examples, especially as I see organizations where Teams/Slack are heavily in use (not just in tech companies), and these tools have changed how people work. Not everyone has moved, and there is a lot of document sharing and legacy systems, but that’s also because not everyone wants to or can change at the same pace. However, lots of people have changed how they create, share, collaborate, communicate, and more because of these tools.

    I also think the hotel example is silly (read the article to see more). I don’t need a desk, and often I check in and get my key without ever visiting a desk. However, I do like the desk because when I need something, I want to be able to find someone, not wander around looking for an employee or waiting for them to respond to some page. When there’s a desk I can see someone is there. I certainly don’t want a kiosk with an AI there to queue at to request a person help me.

    GenAI LLMs are going to change work for a lot of people, especially those in tech. I don’t know that we can redesign the way we work now, as the technology is still advancing, and I’m not sure how we will want to integrate agents with GenAI to do work. We have to experiment and find ways to use this tech before we build too much. We also have to see it mature.

    When we do, I bet many more people will start to use AI to generate code, change settings, deploy things, and more. I’m also sure that they will make many mistakes, at scale, and we’ll be using a GenAI agent to undo things, or perhaps we’ll have humans scrambling to fix systems. I wouldn’t be surprised to see the humans commonly fixing things as we might not trust the AI Agent (or our prompting) to fix our mistake.

    If you could redesign work, what would you want out of an AI? Assume that it is at least as competent as someone you work with. Is there a way that a GenAI system would make your work smoother?

    Steve Jones

    Listen to the podcast at Libsyn, Spotify, or iTunes.

    Note, podcasts are only available for a limited time online.