This document summarizes Fernando Guerrero's presentation on using INSTEAD OF triggers in SQL Server 2000 to make non-updateable views updateable. The presentation covers: what INSTEAD OF triggers are and how they work; the difference between updateable and non-updateable views; how to use INSTEAD OF triggers to make a view updateable by having the trigger modify the underlying tables instead of the view; and some examples of applying this technique for vertically partitioned tables, horizontally partitioned tables, computed columns, and summary data.
New gTLDs between two rounds: trade mark challenges
▶ gTLDs: first round of applications’ results: who registered and why?
▶ Transparency: how did TM owners find their way through new gTLD application system?
▶ More gTLDs, more disputes? Will cybersquatting increase?
▶ trade mark protection mechanisms: all about uniform rapid suspension system, pre-emptive registration period and trade mark clearinghouse
Una antigua presentación sobre UDFs en SQL Server. la primera vez que presenté una sesión en público con Miguel Egea, en la conferencia PortalFox, en Coruña, España, en febrero del 2003
New gTLDs between two rounds: trade mark challenges
▶ gTLDs: first round of applications’ results: who registered and why?
▶ Transparency: how did TM owners find their way through new gTLD application system?
▶ More gTLDs, more disputes? Will cybersquatting increase?
▶ trade mark protection mechanisms: all about uniform rapid suspension system, pre-emptive registration period and trade mark clearinghouse
Una antigua presentación sobre UDFs en SQL Server. la primera vez que presenté una sesión en público con Miguel Egea, en la conferencia PortalFox, en Coruña, España, en febrero del 2003
Liquibase få kontroll på dina databasförändringarSqueed
You never develop code without version control, why do you develop your database without it? With Liquibase, database changes are stored in human XML-files and committed to the source control system. Changes are applied to the developers local databases. As changes are committed they are distributed to all other environments including all developers local databases, test databases, staging databases, and even to production databases. This presentation will introduce you to Liquibase and the topic database change management. We will also present some advanced topics based on real life experience and a few tips and tricks as well
Rikard Thulin, Squeed and Roger Nilsson, Altran
Ten query tuning techniques every SQL Server programmer should knowKevin Kline
From the noted database expert and author of 'SQL in a Nutshell' - SELECT statements have a reputation for being very easy to write, but hard to write very well. This session will take you through ten of the most problematic patterns and anti-patterns when writing queries and how to deal with them all. Loaded with live demonstrations and useful techniques, this session will teach you how to take your SQL Server queries mundane to masterful.
Beyond EBR, Quantum Columns, Spook Joins and Virtual Integrity for ZDT Data V...Jeff Jacobs
While Edition Based Redefinition provides great functionality for packaging new releases, there are still areas that it does not cover. In particular, so-called “seed data”. Seed data is data that is provided as part of the application, as opposed to transactional and operational data. Seed data may include language translations, UI screen labels, sample data and other types of data. Versioning of such data "in toto" while maintaining enabled FK constraints presents significant challenge, particularly when migrating a legacy application, . This presentation offers techniques that preserve existing FK constraints, preserves the ability to use appropriate data in an EBR edition, enables zero downtime switching between editions and requires no changes to existing application DML
How many lines of code does it take to generate a running total? How would you find a value in the next row of data – without using a cursor or loop? How can you efficiently store rows of data with a lot of optional fields, and how can you quickly find which of those rows have values? And how can you eliminate locking without resorting to dirty reads? SQL Server has answers for all of these questions, and none requires more than a few lines of code. Give me an hour, and I will blow your mind!
Presenter: Ernest Hwang of Practice Fusion > This presentation shows how to simplify your database deployments, ensure that no database changes are overlooked, and implement unit tests using the suite of Red Gate developer tools.
You'll see how Practice Fusion streamlines database deployments in their Integration, Testing, Staging, and Production environments. This frees developers from the burden of maintaining deployment scripts, while reducing the number of overlooked breaking changes to zero.
The demo uses a Windows Azure box as the Jenkins (Continuous Integration) server and several SQL Azure databases (representing Integration and QA environments). The entire repository is hosted on GitHub (https://github.com/CF9/Databases.RGDemo), for anyone to download.
You'll learn how to:
* Add your database to source control in under five minutes
* Create a CI Job to validate your database “build”
* Deploy database changes to your environments with a mouse click
* Set up database unit testing using tSQLt
* Avoid problems when implementing Database CI in the “real-world”
Ernest Hwang is a Principal Software Engineer at Practice Fusion in San Francisco. He uses Red Gate SQL Source Control, SQL Compare, SQL Data Compare, and SQL Test to automate Practice Fusion's Continuous Integration efforts and instrument database deployments.
Developers’ mDay 2019. -Bogdan Kecman, Oracle – MySQL 8.0 – why upgrade
Developers’ mDay konferencija okuplja inspirativne ljude iz oblasti web developmenta. U pitanju je događaj stručnog karaktera, namenjen web developerima sa ciljem da se upoznaju sa aktuelnim tehnologijama u projektovanju web sistema, iskustvima u korišćenju najnovijih tehnika i tehnologija, kao i u rešavanju problema sa kojima se svakodnevno suočavaju.
Liquibase få kontroll på dina databasförändringarSqueed
You never develop code without version control, why do you develop your database without it? With Liquibase, database changes are stored in human XML-files and committed to the source control system. Changes are applied to the developers local databases. As changes are committed they are distributed to all other environments including all developers local databases, test databases, staging databases, and even to production databases. This presentation will introduce you to Liquibase and the topic database change management. We will also present some advanced topics based on real life experience and a few tips and tricks as well
Rikard Thulin, Squeed and Roger Nilsson, Altran
Ten query tuning techniques every SQL Server programmer should knowKevin Kline
From the noted database expert and author of 'SQL in a Nutshell' - SELECT statements have a reputation for being very easy to write, but hard to write very well. This session will take you through ten of the most problematic patterns and anti-patterns when writing queries and how to deal with them all. Loaded with live demonstrations and useful techniques, this session will teach you how to take your SQL Server queries mundane to masterful.
Beyond EBR, Quantum Columns, Spook Joins and Virtual Integrity for ZDT Data V...Jeff Jacobs
While Edition Based Redefinition provides great functionality for packaging new releases, there are still areas that it does not cover. In particular, so-called “seed data”. Seed data is data that is provided as part of the application, as opposed to transactional and operational data. Seed data may include language translations, UI screen labels, sample data and other types of data. Versioning of such data "in toto" while maintaining enabled FK constraints presents significant challenge, particularly when migrating a legacy application, . This presentation offers techniques that preserve existing FK constraints, preserves the ability to use appropriate data in an EBR edition, enables zero downtime switching between editions and requires no changes to existing application DML
How many lines of code does it take to generate a running total? How would you find a value in the next row of data – without using a cursor or loop? How can you efficiently store rows of data with a lot of optional fields, and how can you quickly find which of those rows have values? And how can you eliminate locking without resorting to dirty reads? SQL Server has answers for all of these questions, and none requires more than a few lines of code. Give me an hour, and I will blow your mind!
Presenter: Ernest Hwang of Practice Fusion > This presentation shows how to simplify your database deployments, ensure that no database changes are overlooked, and implement unit tests using the suite of Red Gate developer tools.
You'll see how Practice Fusion streamlines database deployments in their Integration, Testing, Staging, and Production environments. This frees developers from the burden of maintaining deployment scripts, while reducing the number of overlooked breaking changes to zero.
The demo uses a Windows Azure box as the Jenkins (Continuous Integration) server and several SQL Azure databases (representing Integration and QA environments). The entire repository is hosted on GitHub (https://github.com/CF9/Databases.RGDemo), for anyone to download.
You'll learn how to:
* Add your database to source control in under five minutes
* Create a CI Job to validate your database “build”
* Deploy database changes to your environments with a mouse click
* Set up database unit testing using tSQLt
* Avoid problems when implementing Database CI in the “real-world”
Ernest Hwang is a Principal Software Engineer at Practice Fusion in San Francisco. He uses Red Gate SQL Source Control, SQL Compare, SQL Data Compare, and SQL Test to automate Practice Fusion's Continuous Integration efforts and instrument database deployments.
Developers’ mDay 2019. -Bogdan Kecman, Oracle – MySQL 8.0 – why upgrade
Developers’ mDay konferencija okuplja inspirativne ljude iz oblasti web developmenta. U pitanju je događaj stručnog karaktera, namenjen web developerima sa ciljem da se upoznaju sa aktuelnim tehnologijama u projektovanju web sistema, iskustvima u korišćenju najnovijih tehnika i tehnologija, kao i u rešavanju problema sa kojima se svakodnevno suočavaju.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Achieve the Impossible:Use INSTEAD OF triggers in SQL Server 2000 to Deal Transparently with No-updateable Views
1. Session
VDA308
Achieve the Impossible:
Use INSTEAD OF triggers in SQL
Server 2000 to Deal Transparently
with No-updateable Views
Fernando G. Guerrero
SQL Server MVP
.NET Technical Lead
QA plc
October 2002
2. Quick info about Fernando
(2 milliseconds)
• MCSD, MCSE+Internet (W2K), MCDBA, MCT,
QA
SQL Server MVP
• This is where I work: QA, The best learning
environment in Europe
• Writing for SQL Sever Magazine and SQL
Server Professional
• This is my main web site: www.callsql.com
• This is my book (so far):
– Microsoft SQL Server 2000 Programming by
Example (ISBN : 0789724499, co-authored with Carlos
Eduardo Rojas)
• Currently writing on ADO.NET and SQL Server
2000
VS .NET Connections 2
3. Agenda
• INSTEAD OF triggers?
• Updateable and non-updateable views
• Using Instead of triggers to make a view
updateable
• How to use this technique from ADO.NET?
• Applying this technique to specific scenarios
• Note: slides are just a table of contents, is in the
examples (with query plans and SQL Profiler)
where you will learn what actually happens
VS .NET Connections 33
4. INSTEAD OF triggers?
• They execute instead of the requested action:
– INSTEAD OF INSERT
– INSTEAD OF UPDATE
– INSTEAD OF DELETE
• They are proactive (run before the action takes
place)
• Incompatible with cascade operations defined
for the same object and action
• Only one INSTEAD OF trigger per object and
action
VS .NET Connections 44
5. INSTEAD OF triggers? (2)
• NO, Nothing has been changed yet
• NO, Constraints haven’t been checked yet
• NO, IDENTITY values haven’t been
generated yet
• YES, DEFAULT values are applied to help
you
• NO, indexes haven’t been maintained yet
• YES, you have access to the inserted and
deleted tables
VS .NET Connections 55
6. A very silly INSTEAD OF trigger
CREATE TRIGGER allSales
ON Orders
INSTEAD OF INSERT, DELETE, UPDATE
AS
PRINT 'Hello'
GO
UPDATE Orders
SET OrderDate = getdate()
WHERE OrderID = 10259
VS .NET Connections 6
7. Result of the very silly INSTEAD
OF trigger
Hello
(1 row(s) affected)
• But nothing has been changed
• INSTEAD OF updating that row…
• … I printed ‘Hello’
VS .NET Connections 7
8. Be careful with INSTEAD OF
triggers
• It is up to you to write the appropriate
code that will run instead of the requested
action
• If you decide to do nothing in your code,
NOTHING will be done
VS .NET Connections 8
9. INSTEAD OF triggers and
Transactions
• Inside the trigger you are always inside a
transaction:
– If you were inside a transaction already before the
trigger started, @@TRANCOUNT remains
unchanged
– Otherwise @@TRANCOUNT returns 1
• If you executed ROLLBACK inside the trigger,
the entire transaction will be rolled back:
– No need for rolling back this particular action
– Inform the calling batch with an error and do nothing
instead
VS .NET Connections 9
10. INSTEAD OF triggers and Locks
• When the trigger starts execution:
– No exclusive locks have been obtained by this
particular action
– Update locks has been obtained
– Intent locks has been obtained at higher levels of
granularity
• As soon as the trigger perform any action locks
will be obtained appropriately
• Locks will be released when the transaction
terminates
VS .NET Connections 10
11. Order of Execution
1. Default values
2. Instead of Trigger
3. Other constraints (Primary, check, unique)
4. Data is modified
5. IDENTITY and GUID values are evaluated
6. Indexes are maintained
7. Cascade Foreign Keys are applied, if any
8. After triggers run
VS .NET Connections 11
12. So, are INSTEAD OF triggers any
good?
• They run when it is still time to decide
• Less intrusive than AFTER triggers
• Improve concurrency by avoiding
exclusive locks as much as possible
• Could produce more overhead than
constraints, but less than after triggers
• Perhaps better than stored procedures
because you can’t avoid instead of
triggers: they always run
VS .NET Connections 12
13. A “little” problem with INSTEAD OF
UPDATE triggers
• You don’t have a RESEND, or DOIT,
statement
• Let’s see why this is important with this
example
• Feel free to send your wishes to
sqlwish@microsoft.com
VS .NET Connections 13
14. Updateable and non-updateable
views
• As a general rule a view is always updateable
unless:
– It is collapsed:
• Uses UNION
• Is the result of an aggregation
– All its columns are read-only
– Doesn’t contain an actual table in the FROM clause
• UNION ALL views can be updateable if they are
defined as partitioned views
• As long as there is one column to update, the
view can be updated
VS .NET Connections 14
15. What about primary keys?
• A view doesn’t need a primary key or unique
index to be updatable
• Because UPDATE, INSERT or DELETE
statements don’t need to reference primary keys
at all
• This is a limitation of the Visual Database Tools
included in:
– Enterprise Manager
– Query Analyzer
– Visual Studio
– Access
VS .NET Connections 15
16. Some misleading info in BOL on
updateable views
• Derived columns make a view non updateable…
Wrong!
– Look at this example
• Views can be updated as long as SQL Server
knows how to translate changes to the
underlying table… Wrong! unless
– It is a properly formed partitioned view
– It has defined the appropriate instead of triggers
– Look at this example
VS .NET Connections 16
17. What about joins?
• Transact-SQL supports JOIN clause in the
UPDATE, INSERT and DELETE
statements
• Therefore, a view defined with a JOIN
clause is updateable as long as:
– every statement updates one and only one
table at a time
– Or it has defined the appropriate instead of
triggers
VS .NET Connections 17
18. Using Instead of triggers to make
updateable a non-updateable view
• The instead of trigger runs first, before the actual
modification is attempted
• If you know the business meaning of the
intended modification, you can write an instead
of trigger to do it
• The code inside the instead of trigger will modify
actual tables, instead of the view itself
• As long as the code inside the trigger is valid,
the action will be valid as well
• All this process is transparent to the user
VS .NET Connections 18
19. How to use this technique from
ADO.NET?
• The UI doesn’t support this feature, and the
DataAdapter will be unable to create the
InsertCommand, UpdateCommand and
DeleteCommand:
– It’s a problem with connection settings
(ARITHABORT) that could be fixed by the VS or SQL
guys (sqlwish@microsoft.com)
• As long as you define your own commands it
works fine
VS .NET Connections 19
20. What about the CommandBuilder?
• It doesn’t support updateable views
through instead of triggers unless:
– You set the AIRTHABORT ON connection
option by code
– You create a UNIQUE CLUSTERED INDEX on
that view
– You use the NOEXPAND option
after the view name
– There you go
VS .NET Connections 20
21. Applying this technique to specific
scenarios
• Dealing transparently with vertically
partitioned tables
• Dealing transparently with horizontally
partitioned tables
• Updating computed columns
• Updating summary data
• I’ll show you in detail one example of each
one of these scenarios
VS .NET Connections 21
22. Dealing transparently with vertically
partitioned tables
• DELETE:
– Don’t do it unless you know for sure
what makes sense
• INSERT:
– Which table you want to insert to?
– Write one statement per table
• UPDATE:
– Write one statement per underlying
table
VS .NET Connections 22
23. Dealing transparently with
horizontally partitioned tables
• Define them as partitioned views
and leave SQL Server alone, he
will do it properly for you
• In any other case, write the
appropriate code to select which
actual table to affect
• Have a clear partition criteria!
VS .NET Connections 23
24. Updating computed columns
• Make sure the formula has a valid
reverse formula which produces
unique valid results
• Don’t expect the UI to be able to
deal with it at all
VS .NET Connections 24
25. Updating summary data
• You should know what means
updating totals ;-)
• It could be useful for increasing
budget on several unfinished
sections with a single change on
total budget
• Also for spreading changes on
target sales for all salespeople
VS .NET Connections 25
26. Do you want to know more?
• “Inside SQL Server 2000” (Kalen Delaney, MSPress)
• “Advanced Transact-SQL for SQL Server 2000” (Itzik
Ben-Gan & Tom Moreau, APress)
• “SQL Server 2000 Programming” (Robert Vieira, WROX)
• “Microsoft SQL Server 2000 Programming by Example”
(Fernando G. Guerrero & Carlos Eduardo Rojas, QUE)
• SQL Server 2000 Resource Kit (MSPress & TechNet)
• Visit the Microsoft public newsgroups:
– msnews.microsoft.com/microsoft.public.sqlserver.*
• Download the source code of this session from:
– http://www.callsql.com/en/articles
VS .NET Connections 26
26
27. Do you want to know even
more?
• Visit the Microsoft public newsgroups:
– msnews.microsoft.com/microsoft.public.sql
server.*
– msnews.microsoft.com/microsoft.public.dot
net.*
VS .NET Connections 27
27
28. Thank you! Questions?
• Please drop off your session
evaluations in the basket at the
back of the room!
• Your comments are greatly
appreciated!
• Download the source code of this
session from:
– http://www.callsql.com/en/articles
• You can contact me at:
– fernan@guerrerog.org
VS .NET Connections 28