You are on page 1of 5

Listing 1: Script to Refresh Views Owned by db_owner

SET quoted_identifier OFF


GO
DECLARE @ObjectName varchar(30)
DECLARE @ObjectName_header varchar(75)
DECLARE tnames_cursor CURSOR FOR SELECT name FROM sysobjects
WHERE type = 'V' AND uid = 1 ORDER BY name
OPEN tnames_cursor
FETCH NEXT FROM tnames_cursor INTO @Objectname
WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status <> -2)
BEGIN
SELECT @ObjectName_header = 'Refreshing ' + @ObjectName
PRINT @ObjectName_header
EXEC('sp_refreshview ' + @ObjectName)
END
FETCH NEXT FROM tnames_cursor INTO @ObjectName
END
PRINT ' '
SELECT @ObjectName_header = 'ALL VIEWS HAVE BEEN REFRESHED'
PRINT @ObjectName_header
DEALLOCATE tnames_cursor
GO

Listing 2: Add a Timestamp Field to All User Tables

--Change the SELECT statement:


DECLARE tnames_cursor CURSOR FOR SELECT name FROM sysobjects
WHERE type = 'U' ORDER BY name
--Change the EXEC statement to perform an ALTER TABLE:
EXEC ('ALTER TABLE Pubs.DBO.' + @Objectname + ' ADD
Timestamp timestamp NULL')
Listing 3: VB COM Component Code Snippet That Invokes a Stored Procedure

Dim cn As New ADODB.Connection


Dim cmd As New ADODB.Command
Dim rs As New ADODB.Recordset
Dim param1 As Parameter, param2 as Parameter
cn.Open ConfigObject.myConnectionString
Set cmd.ActiveConnection = cn
cmd.CommandText = "sp_checkloginrights"
cmd.CommandType = adCmdStoredProc
Set param1 = cmd.CreateParameter("userID", adInteger, adParamInput)
cmd.Parameters.Append param1
Set param1 = cmd.CreateParameter("objectID", adInteger, adParamInput)
cmd.Parameters.Append param2
Set rs = cmd.Execute

Listing 4: C# Code That Calls the p_insertimage Procedure

public class ImageData


{
public static void Main()
{
string sconn = "Provider=SQLOLEDB;Data Source=teca4;"
+ "Initial Catalog=SQLMag;Integrated Security=SSPI;";

OleDbConnection conn = new OleDbConnection();


conn.ConnectionString = sconn;
conn.Open();

FileStream fs =
new FileStream("C:\\temp\\homer.jpg",
FileMode.Open, FileAccess.Read);
Byte[] imagefile = new Byte[fs.Length];
fs.Read(imagefile, 0, (int)fs.Length);
fs.Close(0;

OleDbCommand cmd = new OleDbCommand();

//Stored procedure with an image input parameter


// that inserts to a table containing an image column.
cmd.CommandText = "p_insertimage";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = conn;
OleDbParameter image =
cmd.Parameters.Add("@image", OleDbType.LongVarBinary);
image.Direction = ParameterDirection.Input;
image.Value = imagefile;
cmd.ExecuteNonQuery();
conn.Close();
}
}

Listing 5: Updategram That Inserts a Row

<root xmlns:sql="urn:schemas-microsoft-com:xml-sql"
xmlns:updg="urn:schemas-microsoft-com:xml-updategram" >
<updg:sync>
<updg:after>
<department Dep_ID='1111' Dep_Name="Department of XML"/>
</updg:after>
</updg:sync>
</root>

Listing 6: Visual Basic .NET Example That Illustrates Adding Two Connections by Using
Identical Connection Strings

Private Sub SQLConnectPool(ByVal sServer As String)


' Create the first connection object
Dim cn As New SqlConnection("SERVER=" & sServer & _
";INTEGRATED SECURITY=True")
Dim cn2 As New SqlConnection("SERVER=" & sServer & _
";INTEGRATED SECURITY=True")
' Create the second identical connection object
Try
cn.Open()
cn2.Open()
Catch ex As Exception
MessageBox.Show("Connection error: :" & ex.ToString())
End Try
cn.Close()
cn2.Close()
End Sub
Listing 7: Template Query1.xml for the <Titles> Query

<Titles xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:query>
SELECT * FROM Titles FOR XML AUTO
</sql:query>
</Titles>

Listing 8: Code That Uses an Output Parameter for a Stored Procedure That
Performs an INSERT

CREATE PROCEDURE spEmployeesInsertCmd


(@LastName nvarchar(20),
@FirstName nvarchar(10),
@Title nvarchar(30),
@Address nvarchar(60),
@City nvarchar(15),
@Region nvarchar(15),
@PostalCode nvarchar(10),
@Identity int OUT )
AS INSERT INTO Employees(LastName, FirstName,
Title, Address, City, Region, PostalCode) VALUES
(@LastName, @FirstName, @Title, @Address,
@City, @Region, @PostalCode)
SET @Identity = SCOPE_IDENTITY()

Listing 9: Script That Creates and Populates the T1 Table

CREATE TABLE T1
(groupid int NOT NULL,
elementid int NOT NULL,
value int NOT NULL,
PRIMARY KEY(groupid, elementid))

SET NOCOUNT ON
INSERT INTO T1 VALUES(1, 1, 4)
INSERT INTO T1 VALUES(1, 2, 6)
INSERT INTO T1 VALUES(1, 3, 3)
INSERT INTO T1 VALUES(2, 1, 4)
INSERT INTO T1 VALUES(2, 2, 6)
INSERT INTO T1 VALUES(3, 1, 5)
INSERT INTO T1 VALUES(3, 2, 0)
INSERT INTO T1 VALUES(2, 3, -1)
Listing 10: Complete Aggregate Solution

SELECT groupid,
CASE
WHEN SUM(CASE value WHEN 0 THEN 1 ELSE 0 END) > 0 THEN 0
ELSE CASE SUM(CASE SIGN(value) WHEN -1 THEN 1 ELSE 0 END) % 2
WHEN 1 THEN -1 ELSE 1
END * POWER(10., SUM(LOG10(ABS(NULLIF(value, 0)))))
END AS product
FROM T1
GROUP BY groupid

Procedure for dynamic selection in tables

Create PROC SelectTable @Table varchar(50),@condition varchar(50) AS


begin

EXEC ('SELECT * FROM'+' ' + @Table +' '+ 'order by'+' ' + @condition +' ' + 'asc')
end

exec SelectTable 'EmpInfo','SerialNo'

SP for find starting and end of particular date

Create procedure calmon @dd1 varchar(10)


as
begin
DECLARE @wm numeric
DECLARE @wm1 numeric
declare @wm2 numeric
declare @day1 numeric
set @day1=datepart(day,@dd1)
set @wm =datepart(dd,dateadd(dd,-1,dateadd(mm,1,cast(cast(year(@dd1) as
varchar)+'-'+cast(month(@dd1) as varchar)+'-01' as datetime))))
set @wm1=@wm-@day1
print 'End Date of An Month'
print dateadd(day,@wm1,@dd1)
print 'Start Date OF An Month'
set @wm2=1-@day1
print dateadd(day,@wm2,@dd1)
end

You might also like