Size: 190
Comment:
|
Size: 2344
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 9: | Line 9: |
== Show CLR assemblies == {{{#!highlight sql -- get assembly_id select * from sys.assembly_modules }}} == Extract SQL CLR assembly == [[http://serverfault.com/questions/139703/extracting-a-sqlclr-assembly]] {{{#!highlight sql -- reconfigure sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_configure 'Ole Automation Procedures', 1; GO RECONFIGURE; GO -- extract assembly DECLARE @IMG_PATH VARBINARY(MAX) DECLARE @ObjectToken INT SELECT @IMG_PATH = content FROM sys.assembly_files WHERE assembly_id = 65824 and file_id=1 EXEC sp_OACreate 'ADODB.Stream', @ObjectToken OUTPUT EXEC sp_OASetProperty @ObjectToken, 'Type', 1 EXEC sp_OAMethod @ObjectToken, 'Open' EXEC sp_OAMethod @ObjectToken, 'Write', NULL, @IMG_PATH EXEC sp_OAMethod @ObjectToken, 'SaveToFile', NULL, 'c:\windows\temp\65824.dll', 2 EXEC sp_OAMethod @ObjectToken, 'Close' EXEC sp_OADestroy @ObjectToken }}} == Number seconds between two dates == {{{#!highlight sql SELECT datediff(second, dateX1, GETDATE() ) FROM tablex }}} == Convert dates to string == Convert types: http://msdn.microsoft.com/en-us/library/ms187928%28SQL.90%29.aspx {{{#!highlight sql SELECT CONVERT(NVARCHAR(30), GETDATE(), 126) 2009-05-01T14:18:12.430 SELECT CONVERT(NVARCHAR(30), GETDATE(), 120) 2009-05-01 14:18:12 }}} == Create stored procedure == {{{#!highlight sql IF OBJECT_ID('insertName', 'P') IS NOT NULL BEGIN DROP PROC insertName; END GO CREATE PROCEDURE insertName @name as nvarchar(1024) , @commited as int output AS BEGIN declare @newIdTbl1 as int; set @commited=0; begin try begin transaction insert into tbl1(namex) values(@name); SELECT @newIdTbl1 = SCOPE_IDENTITY(); insert into tbl2(refTbl1) values(@newIdTbl1); if @@TRANCOUNT>0 begin commit transaction set @commited=1; end end try begin catch rollback transaction end catch; END; GO declare @x as int; exec insertName 'jjkkll',@x output; select @x; }}} |
tsql
Microsoft Transact SQL (t-sql)
Show stored procedure or function code
Show CLR assemblies
Extract SQL CLR assembly
http://serverfault.com/questions/139703/extracting-a-sqlclr-assembly
1 -- reconfigure
2 sp_configure 'show advanced options', 1;
3 GO
4 RECONFIGURE;
5 GO
6 sp_configure 'Ole Automation Procedures', 1;
7 GO
8 RECONFIGURE;
9 GO
10
11 -- extract assembly
12 DECLARE @IMG_PATH VARBINARY(MAX)
13 DECLARE @ObjectToken INT
14
15 SELECT @IMG_PATH = content FROM sys.assembly_files WHERE assembly_id = 65824 and file_id=1
16
17 EXEC sp_OACreate 'ADODB.Stream', @ObjectToken OUTPUT
18 EXEC sp_OASetProperty @ObjectToken, 'Type', 1
19 EXEC sp_OAMethod @ObjectToken, 'Open'
20 EXEC sp_OAMethod @ObjectToken, 'Write', NULL, @IMG_PATH
21 EXEC sp_OAMethod @ObjectToken, 'SaveToFile', NULL, 'c:\windows\temp\65824.dll', 2
22 EXEC sp_OAMethod @ObjectToken, 'Close'
23 EXEC sp_OADestroy @ObjectToken
Number seconds between two dates
Convert dates to string
Convert types: http://msdn.microsoft.com/en-us/library/ms187928%28SQL.90%29.aspx
Create stored procedure
1 IF OBJECT_ID('insertName', 'P') IS NOT NULL
2 BEGIN
3 DROP PROC insertName;
4 END
5 GO
6
7 CREATE PROCEDURE insertName
8 @name as nvarchar(1024) , @commited as int output
9 AS
10 BEGIN
11 declare @newIdTbl1 as int;
12 set @commited=0;
13 begin try
14 begin transaction
15 insert into tbl1(namex) values(@name);
16 SELECT @newIdTbl1 = SCOPE_IDENTITY();
17 insert into tbl2(refTbl1) values(@newIdTbl1);
18 if @@TRANCOUNT>0
19 begin
20 commit transaction
21 set @commited=1;
22 end
23 end try
24 begin catch
25 rollback transaction
26 end catch;
27 END;
28 GO
29
30 declare @x as int;
31 exec insertName 'jjkkll',@x output;
32 select @x;